@echo off

echo compiling generators
g++ -O2 -Wall -o gen_star.exe gen_star.cpp
g++ -O2 -Wall -o gen_nary.exe gen_nary.cpp
g++ -O2 -Wall -o gen_rand.exe gen_rand.cpp
g++ -O2 -Wall -o cpud.exe cpud.cpp

echo 01-02: sample tests
cpud 01.manual 01 > nul 2> nul
cpud 02.manual 02 > nul 2> nul

echo 03-08: small manual tests, minimal tests
cpud 03.manual 03 > nul 2> nul
cpud 04.manual 04 > nul 2> nul
cpud 05.manual 05 > nul 2> nul
cpud 06.manual 06 > nul 2> nul
cpud 07.manual 07 > nul 2> nul
cpud 08.manual 08 > nul 2> nul

echo 09: a line with some trash
gen_star 1 100 130 15 3017 > 09
echo 10: a long line (dumb maxtest)
gen_star 1 99999 99999 0 3018 > 10
echo 11: 3-pointed star with trash
gen_star 3 30000 32000 4000 3019 > 11
echo 12: straight 3-pointed star
gen_star 3 5013 5013 0 3020 > 12
echo 13: 4-pointed star
gen_star 4 20000 25000 20 3021 > 13
echo 14: 5-pointed star
gen_star 5 500 550 610 3022 > 14
echo 15: 13-pointed star
gen_star 13 1000 2000 8563 3023 > 15
echo 16: 1-deep star (a kind of maxtest)
gen_star 99999 1 1 0 3024 > 16
echo 17: 1-deep star with some trash
gen_star 49999 1 1 50000 3025 > 17
echo 18-19: binary trees
gen_nary 65535 2 3026 > 18
gen_nary 100000 2 3027 > 19
echo 20: 3-ary tree
gen_nary 50000 3 3028 > 20
echo 21: 300-ary tree
gen_nary 100000 300 3029 > 21

echo 22-26: small random tests
gen_rand 5 20 3030 > 22
gen_rand 5 20 3031 > 23
gen_rand 5 20 3032 > 24
gen_rand 5 20 3033 > 25
gen_rand 5 20 3034 > 26

echo 27-34: medium random tests
gen_rand 100 300 3035 > 27
gen_rand 100 300 3036 > 28
gen_rand 100 300 3037 > 29
gen_rand 100 300 3038 > 30
gen_rand 500 1000 3039 > 31
gen_rand 500 1000 3040 > 32
gen_rand 500 1000 3041 > 33
gen_rand 2000 5000 3042 > 34

echo 35-44: huge (max) random tests
gen_rand 90000 100000 3043 > 35
gen_rand 90000 100000 3044 > 36
gen_rand 90000 100000 3045 > 37
gen_rand 90000 100000 3046 > 38
gen_rand 90000 100000 3047 > 39
gen_rand 100000 100000 3048 > 40
gen_rand 100000 100000 3049 > 41
gen_rand 100000 100000 3050 > 42
gen_rand 100000 100000 3051 > 43
gen_rand 100000 100000 3052 > 44

echo 45-51: several manual test for _yp_bug* solution
cpud 45.manual 45 > nul 2> nul
cpud 46.manual 46 > nul 2> nul
cpud 47.manual 47 > nul 2> nul
cpud 48.manual 48 > nul 2> nul
cpud 49.manual 49 > nul 2> nul
cpud 50.manual 50 > nul 2> nul
cpud 51.manual 51 > nul 2> nul

echo 52-54: several manual tests for _asm_bug solution
cpud 52.manual 52 > nul 2> nul
cpud 53.manual 53 > nul 2> nul
cpud 54.manual 54 > nul 2> nul

echo compiling model solution

g++ -O2 -Wall -Wl,--stack=60000000 -o collider_yp.exe ../collider_yp.cpp

echo generating answers

for %%i in (??) do (
  echo test %%i
  copy %%i collider.in > nul 2> nul
  collider_yp
  copy collider.out %%i.a > nul 2> nul
)
