summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorubq323 <ubq323@ubq323.website>2024-07-13 12:34:33 +0100
committerubq323 <ubq323@ubq323.website>2024-07-13 12:34:33 +0100
commitcb738e17c9751fadc990fda75fa023a8fe9fd671 (patch)
tree599c94e8e9678e2393e81640faf46d9e660df820
parentd9d307bc676387ab8894f9fb1ee722db8ecf7272 (diff)
add iota tests
-rwxr-xr-xrun_tests.sh11
-rw-r--r--tests/iota_imp.bth4
-rw-r--r--tests/iota_imp.out1
-rw-r--r--tests/iota_rec.bth7
-rw-r--r--tests/iota_rec.out1
5 files changed, 18 insertions, 6 deletions
diff --git a/run_tests.sh b/run_tests.sh
index 18885da..16201b5 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -12,9 +12,8 @@ for testfile in tests/*.bth; do
printf '\033[33mSKIP\033[0m %s (no output file)\n' "$testname"
skip=$((skip + 1))
else
- output="$(./bth $testfile 2>&1)"
- run_res=$?
- echo "$output" | diff $outfile - >/dev/null
+ output="$(./bth "$testfile" 2>&1)"
+ echo "$output" | diff "$outfile" - >/dev/null
diff_res=$?
case $diff_res in
0) printf '\033[32m\033[1mPASS\033[0m %s\n' "$testname"
@@ -22,7 +21,7 @@ for testfile in tests/*.bth; do
1) printf '\033[31m\033[1mFAIL\033[0m %s\n' "$testname"
printf "\tgot output: %s\n" "$(echo "$output" | head -n4)"
printf "\texpected: "
- cat $outfile
+ cat "$outfile"
fail=$((fail + 1)) ;;
esac
fi
@@ -31,10 +30,10 @@ done
echo
pnum () {
- if [ $1 -eq 0 ]; then
+ if [ "$1" -eq 0 ]; then
printf "0 %s; " "$2"
else
- printf "\033[3%dm%d\033[0m %s; " $3 $1 "$2"
+ printf "\033[3%dm%d\033[0m %s; " "$3" "$1" "$2"
fi
}
diff --git a/tests/iota_imp.bth b/tests/iota_imp.bth
new file mode 100644
index 0000000..cc62db9
--- /dev/null
+++ b/tests/iota_imp.bth
@@ -0,0 +1,4 @@
+(let (a [])
+ (for (i 10)
+ (append a i))
+ (say a))
diff --git a/tests/iota_imp.out b/tests/iota_imp.out
new file mode 100644
index 0000000..0f6e04d
--- /dev/null
+++ b/tests/iota_imp.out
@@ -0,0 +1 @@
+[ 0 1 2 3 4 5 6 7 8 9 ]
diff --git a/tests/iota_rec.bth b/tests/iota_rec.bth
new file mode 100644
index 0000000..8e274a4
--- /dev/null
+++ b/tests/iota_rec.bth
@@ -0,0 +1,7 @@
+(defn (iota' arr i max)
+ (if (< i max)
+ (iota' (append arr i) (+ i 1) max)
+ arr))
+(set! _G_iota' iota')
+(defn (iota n) (_G_iota' [] 0 n))
+(say (iota 10))
diff --git a/tests/iota_rec.out b/tests/iota_rec.out
new file mode 100644
index 0000000..0f6e04d
--- /dev/null
+++ b/tests/iota_rec.out
@@ -0,0 +1 @@
+[ 0 1 2 3 4 5 6 7 8 9 ]