46 lines
1.1 KiB
Bash
46 lines
1.1 KiB
Bash
|
#!/bin/bash
|
||
|
PASSES=0
|
||
|
FAILS=0
|
||
|
|
||
|
pass() {
|
||
|
echo "$1 test PASSED"
|
||
|
((PASSES++))
|
||
|
}
|
||
|
|
||
|
fail() {
|
||
|
echo "$1 test FAILED"
|
||
|
((FAILS++))
|
||
|
}
|
||
|
|
||
|
check() {
|
||
|
local output=$(./pebblisp "$2")
|
||
|
if [ "$output" == "$3" ]; then
|
||
|
pass $1
|
||
|
else
|
||
|
fail $1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
check "Addition" "(+ 1093 102852)" "103945"
|
||
|
check "Multiply" "(* 1000 10000)" "10000000"
|
||
|
check "Division" "(/ 6418425 65)" "98745"
|
||
|
echo ""
|
||
|
check "ChainAdd" "(+ 3917 17304 1293844 400 100000)" "1415465"
|
||
|
check "ChainMul" "(* 8263 23 123)" "23376027"
|
||
|
check "ChainDiv" "(/ 1493856 741 96 7)" "3"
|
||
|
echo ""
|
||
|
check "GratrThn" "(> 23847123 19375933)" "T"
|
||
|
check "LessThan" "(< 23847123 19375933)" "F"
|
||
|
check "Equality" "(= 987654321 987654321 )" "T"
|
||
|
echo ""
|
||
|
check "IfReturn" "(if (T) 123456789 987654321)" "123456789"
|
||
|
check "IfRetTwo" "(if F 123456789 987654321)" "987654321"
|
||
|
check "IfRetTwo" "(if () 123456789 987654321)" "987654321"
|
||
|
# check "IfRetTwo" "(if (()) 123456789 987654321)" "123456789"
|
||
|
echo ""
|
||
|
check "RegLists" "(1 2 3 4 5)" "( 1 2 3 4 5 )"
|
||
|
|
||
|
echo ""
|
||
|
echo "$PASSES Tests Passed"
|
||
|
echo "$FAILS Tests Failed"
|