#!/bin/bash

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

echo "01-02: sample tests"
cp 01.manual 01
cp 02.manual 02

echo "03-08: small manual tests, minimal tests"
cp 03.manual 03
cp 04.manual 04
cp 05.manual 05
cp 06.manual 06
cp 07.manual 07
cp 08.manual 08

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 tests (anti-'collider_yp_bug*')"
cp 45.manual 45
cp 46.manual 46
cp 47.manual 47
cp 48.manual 48
cp 49.manual 49
cp 50.manual 50
cp 51.manual 51

echo "52-54: several manual tests for _as solution"
cp 52.manual 52
cp 53.manual 53
cp 54.manual 54

echo "compiling model solution"

g++ -O1 -Wall -o collider_yp ../collider_yp.cpp

echo "generating answers"

i=0
while (( i <= 9 )) ;
do
  j=0
  while (( j <= 9 )) ;
  do
    if [ -e $i$j ] ;
    then
      echo "test $i$j"
      cp $i$j collider.in
      ./collider_yp 2> /dev/null
      cp collider.out $i$j.a
    fi
    let j++
  done
  let i++
done

