Batch behavior parity 3 #5
47
run.bat
47
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
|
@ECHO off
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
echo %TIME%
|
||||||
if not defined EXEC (
|
if not defined EXEC (
|
||||||
set EXEC="build/solucao.exe"
|
set EXEC="build\solucao.exe"
|
||||||
)
|
)
|
||||||
|
|
||||||
if not defined TEST_FOLDER (
|
if not defined TEST_FOLDER (
|
||||||
set TEST_FOLDER=test
|
set TEST_FOLDER=Teste\Casos
|
||||||
)
|
)
|
||||||
|
|
||||||
for %%g in (%TEST_FOLDER%/*) do (
|
if not defined SOLUTIONS_FILE (
|
||||||
echo Arquivo de teste: %TEST_FOLDER%/%%g
|
set SOLUTIONS_FILE=Teste\Solucoes.txt
|
||||||
if defined ARGS (
|
)
|
||||||
%EXEC% -%ARGS% < %TEST_FOLDER%/%%g
|
|
||||||
|
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 (
|
) else (
|
||||||
%EXEC% < %TEST_FOLDER%/%%g
|
set /a diff= !res!-!optimal!
|
||||||
|
echo Diferença de !diff!
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
echo %TIME%
|
||||||
|
endlocal
|
||||||
|
set EXEC=
|
||||||
|
set TEST_FOLDER=
|
||||||
|
set SOLUTIONS_FILE=
|
||||||
|
set ARGS=
|
||||||
|
goto :eof
|
||||||
Loading…
x
Reference in New Issue
Block a user