689
|
1 #!/bin/sh
|
|
2 ETEST="../evaltest -f -e"
|
|
3 CTEST=./frm
|
|
4
|
|
5 echo "
|
695
|
6 2 << 1 + 9 >> 3 * 5
|
|
7 (2 << 1 + 9) >> 3 * 5
|
|
8 2 << 1 + 31 >> 3 * 5
|
689
|
9 5 << 1
|
|
10 8 << 3 * 5
|
|
11 3200/2 << 5
|
|
12 3200/(2 << 5)
|
|
13 15+5/3
|
|
14 (15+5)/3
|
|
15 5*-3
|
|
16 -64 + 5 << 3 * 3 - 1
|
|
17 -64 + 5 << 3 + 3 - 1
|
|
18 3 * -1 + 5 << 1
|
|
19 7 + 3 << 2 * 3
|
|
20 7 * 3 << 4 - 3
|
692
|
21 127&127 + 12&3
|
|
22 1+3*5&7
|
|
23 35&3 + 2
|
|
24 9+5&(3 + 7)
|
|
25 (5*(7&3) + 1)
|
706
|
26 123045 >> 1 & 60
|
712
|
27 ~60
|
|
28 3 + ~5
|
|
29 -~128
|
|
30 5-~127
|
689
|
31 " | while read f; do
|
|
32 if test "x$f" != "x"; then
|
|
33 printf "#include <stdio.h>\nint main(int argc, char *argv[])\n{\n (void) argc; (void) argv;\n printf(\"%%1.5f\\\\n\", (double) (%s));\n return 0;\n}\n" "$f" > "$CTEST.c"
|
|
34 gcc -g -o "$CTEST" "$CTEST.c"
|
|
35 if test $? -eq 0; then
|
|
36 RES1=`$CTEST`
|
|
37 RES2=`$ETEST "$f"`
|
|
38 if test "$RES1" != "$RES2"; then
|
|
39 echo "---------------------------------------------"
|
|
40 echo "RESULT MISMATCH: '$f'"
|
|
41 echo " C test: $RES1"
|
|
42 echo " eval: $RES2"
|
692
|
43 cat "$CTEST.c"
|
|
44 elif test "x$1" != "x"; then
|
|
45 echo "---------------------------------------------"
|
|
46 echo "FORMULA: '$f'"
|
|
47 echo " C test: $RES1"
|
|
48 echo " eval: $RES2"
|
689
|
49 fi
|
|
50 fi
|
|
51 fi
|
|
52 done
|
|
53 rm -f "$CTEST" "$CTEST.c"
|