summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/func2.bth6
-rw-r--r--tests/func2.out3
-rw-r--r--tests/func3.bth9
-rw-r--r--tests/func3.out2
-rw-r--r--tests/func4.bth7
-rw-r--r--tests/func4.out5
6 files changed, 32 insertions, 0 deletions
diff --git a/tests/func2.bth b/tests/func2.bth
new file mode 100644
index 0000000..fd16eda
--- /dev/null
+++ b/tests/func2.bth
@@ -0,0 +1,6 @@
+(do
+ (set f1 (fn (a) (* a a)))
+ (set f2 (fn (a b) (+ a b)))
+ (puts (f1 6))
+ (puts (f2 20 40))
+ (f1 (f2 2 1)))
diff --git a/tests/func2.out b/tests/func2.out
new file mode 100644
index 0000000..db0b45a
--- /dev/null
+++ b/tests/func2.out
@@ -0,0 +1,3 @@
+36
+60
+9
diff --git a/tests/func3.bth b/tests/func3.bth
new file mode 100644
index 0000000..2da8cc9
--- /dev/null
+++ b/tests/func3.bth
@@ -0,0 +1,9 @@
+(do
+ (set f1 (fn (a b) (* a b)))
+ (set f2 (fn (x)
+ (set xx x)
+ (let (a 3
+ g (fn (y) (+ y 7)))
+ (* (g a) (g xx)))))
+ (puts (f1 6 6))
+ (f2 7))
diff --git a/tests/func3.out b/tests/func3.out
new file mode 100644
index 0000000..e846097
--- /dev/null
+++ b/tests/func3.out
@@ -0,0 +1,2 @@
+36
+140
diff --git a/tests/func4.bth b/tests/func4.bth
new file mode 100644
index 0000000..7c04cf3
--- /dev/null
+++ b/tests/func4.bth
@@ -0,0 +1,7 @@
+(do
+ (set f1 (fn (x) (+ x 10)))
+ (set f2 (fn (x) (* x 10)))
+ (set g (fn (f x) (puts (f x)) (puts (f x))))
+ (g f1 26)
+ (g f2 6)
+ nil)
diff --git a/tests/func4.out b/tests/func4.out
new file mode 100644
index 0000000..6a32404
--- /dev/null
+++ b/tests/func4.out
@@ -0,0 +1,5 @@
+36
+36
+60
+60
+nil