#!/bin/bash
i=simplenote
bin=$(realpath -- ./build/$i/$i)
TIMEOUT=5
if [[ ! -z $ANGELIX_RUN ]]; then TIMEOUT=50; fi; 
TMP=/tmp/angelix/${i}_$RANDOM
mkdir -p $(dirname -- $TMP)
assert-equal () {
	timeout --preserve-status -k $TIMEOUT $TIMEOUT $ANGELIX_RUN $1 < $2  > $TMP
	x=$?
	if (( $x >= 64 )); then rm $TMP ; exit $x; fi; 
	bc=$(wc -c $3)
	cat $TMP | head -c $bc > $TMP.bc
	diff -q $TMP.bc $3 > /dev/null
	xx=$?
	rm $TMP $TMP.bc
	exit $xx
}
case "$1" in 
1)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.n1 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/n1.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/n1.out"
	;;
2)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.n2 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/n2.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/n2.out"
	;;
3)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p1 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p1.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p1.out"
	;;
4)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p2 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p2.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p2.out"
	;;
5)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p3 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p3.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p3.out"
	;;
6)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p4 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p4.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p4.out"
	;;
7)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p5 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p5.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p5.out"
	;;
8)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p6 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p6.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p6.out"
	;;
9)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p7 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p7.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p7.out"
	;;
10)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p8 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p8.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p8.out"
	;;
11)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p9 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p9.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p9.out"
	;;
12)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p10 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p10.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p10.out"
	;;
13)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p11 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p11.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p11.out"
	;;
14)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p12 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p12.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p12.out"
	;;
15)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p13 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p13.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p13.out"
	;;
16)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p14 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p14.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p14.out"
	;;
17)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p15 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p15.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p15.out"
	;;
18)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p16 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p16.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p16.out"
	;;
19)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p17 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p17.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p17.out"
	;;
20)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p18 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p18.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p18.out"
	;;
21)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p19 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p19.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p19.out"
	;;
22)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p20 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p20.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p20.out"
	;;
23)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p21 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p21.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p21.out"
	;;
24)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p22 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p22.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p22.out"
	;;
25)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p23 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p23.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p23.out"
	;;
26)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p24 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p24.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p24.out"
	;;
27)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p25 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p25.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p25.out"
	;;
28)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p26 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p26.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p26.out"
	;;
29)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p27 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p27.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p27.out"
	;;
30)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p28 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p28.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p28.out"
	;;
31)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p29 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p29.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p29.out"
	;;
32)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p30 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p30.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p30.out"
	;;
33)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p31 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p31.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p31.out"
	;;
34)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p32 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p32.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p32.out"
	;;
35)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p33 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p33.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p33.out"
	;;
36)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p34 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p34.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p34.out"
	;;
37)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p35 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p35.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p35.out"
	;;
38)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p36 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p36.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p36.out"
	;;
39)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p37 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p37.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p37.out"
	;;
40)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p38 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p38.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p38.out"
	;;
41)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p39 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p39.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p39.out"
	;;
42)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p40 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p40.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p40.out"
	;;
43)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p41 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p41.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p41.out"
	;;
44)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p42 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p42.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p42.out"
	;;
45)
	export seed=$(cat /mnt/Data/APR_eval/cgc_oracles/simplenote/seed.p43 | head -n1)
	assert-equal "$bin" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p43.in" "/mnt/Data/APR_eval/cgc_oracles/simplenote/p43.out"
	;;
esac
