From 6fb7e5bf68146d27a918e08f550f2cc85d75fa79 Mon Sep 17 00:00:00 2001 From: Daneck1988 Date: Mon, 14 Oct 2024 12:36:49 -0300 Subject: [PATCH] Batch behavior parity 3 --- run.bat | 47 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/run.bat b/run.bat index f29074e..cfba5ce 100644 --- a/run.bat +++ b/run.bat @@ -1,19 +1,46 @@ -:: Uso: [set EXEC="caminho/do/executavel.exe"] && [set TEST_FOLDER=caminho/dos/casetests] && [set ARGS=ic] && run.bat +:: Uso: [set EXEC="caminho\do\executavel.exe"]&&[set TEST_FOLDER=caminho\dos\casetests]&&[set ARGS=ic]&&[set SOLUTIONS_FILE=arquivo\de\solucoes.txt]&&run.bat @ECHO off - +setlocal enabledelayedexpansion +echo %TIME% if not defined EXEC ( - set EXEC="build/solucao.exe" + set EXEC="build\solucao.exe" ) if not defined TEST_FOLDER ( - set TEST_FOLDER=test + set TEST_FOLDER=Teste\Casos ) -for %%g in (%TEST_FOLDER%/*) do ( - echo Arquivo de teste: %TEST_FOLDER%/%%g - if defined ARGS ( - %EXEC% -%ARGS% < %TEST_FOLDER%/%%g +if not defined SOLUTIONS_FILE ( + set SOLUTIONS_FILE=Teste\Solucoes.txt +) + +if defined ARGS ( + set ARGS=-%ARGS% +) + +for /f "tokens=1,2 skip=1" %%a in (%SOLUTIONS_FILE%) do ( + set solutions[%%a]=%%b +) + +for %%g in (%TEST_FOLDER%\*) do ( + for %%h in (%%g) do set testname=%%~nxh + for /f "delims=" %%h in ("!testname!") do set optimal=!solutions[%%h]! + + echo Arquivo de teste: %%g + for /f "tokens=4" %%h in ('!EXEC! !ARGS! ^< %%g') do set res=%%h + echo Resultado do programa: !res! + echo Resultado ótimo: !optimal! + if !res! EQU !optimal! ( + echo Resultado ótimo^^! ) else ( - %EXEC% < %TEST_FOLDER%/%%g + set /a diff= !res!-!optimal! + echo Diferença de !diff! ) -) \ No newline at end of file +) +echo %TIME% +endlocal +set EXEC= +set TEST_FOLDER= +set SOLUTIONS_FILE= +set ARGS= +goto :eof \ No newline at end of file