80 lines
1.5 KiB
Bash
Executable file
80 lines
1.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
expected='5'
|
|
actual=`echo "(add 2 3)" | target/psse | tail -1`
|
|
|
|
if [ "${expected}" = "${actual}" ]
|
|
then
|
|
echo "OK"
|
|
else
|
|
echo "Fail: expected '${expected}', got '${actual}'"
|
|
exit 1
|
|
fi
|
|
|
|
expected='5.5'
|
|
actual=`echo "(add 2.5 3)" | target/psse | tail -1`
|
|
|
|
if [ "${expected}" = "${actual}" ]
|
|
then
|
|
echo "OK"
|
|
exit 0
|
|
else
|
|
echo "Fail: expected '${expected}', got '${actual}'"
|
|
exit 1
|
|
fi
|
|
|
|
expected='1/4'
|
|
actual=`echo "(+ 3/14 1/28)" | target/psse | tail -1`
|
|
|
|
if [ "${expected}" = "${actual}" ]
|
|
then
|
|
echo "OK"
|
|
else
|
|
echo "Fail: expected '${expected}', got '${actual}'"
|
|
exit 1
|
|
fi
|
|
|
|
# (+ integer ratio) should be ratio
|
|
expected='25/4'
|
|
actual=`echo "(+ 6 1/4)" | target/psse | tail -1`
|
|
|
|
if [ "${expected}" = "${actual}" ]
|
|
then
|
|
echo "OK"
|
|
else
|
|
echo "Fail: expected '${expected}', got '${actual}'"
|
|
exit 1
|
|
fi
|
|
|
|
# (+ ratio integer) should be ratio
|
|
expected='25/4'
|
|
actual=`echo "(+ 1/4 6)" | target/psse | tail -1`
|
|
|
|
if [ "${expected}" = "${actual}" ]
|
|
then
|
|
echo "OK"
|
|
else
|
|
echo "Fail: expected '${expected}', got '${actual}'"
|
|
exit 1
|
|
fi
|
|
|
|
# (+ real ratio) should be real
|
|
# for this test, trailing zeros can be ignored
|
|
expected='6.25'
|
|
actual=`echo "(+ 6.000000001 1/4)" |\
|
|
target/psse 2> /dev/null |\
|
|
sed 's/0*$//' |\
|
|
head -2 |\
|
|
tail -1`
|
|
|
|
outcome=`echo "sqrt((${expected} - ${actual})^2) < 0.0000001" | bc`
|
|
|
|
if [ "${outcome}" = "1" ]
|
|
then
|
|
echo "OK"
|
|
else
|
|
echo "Fail: expected '${expected}', got '${actual}'"
|
|
exit 1
|
|
fi
|
|
|