summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-05-23 21:43:24 +0000
committerkrasimir <krasimir@chalmers.se>2009-05-23 21:43:24 +0000
commit3efb7a671bb9f40ac0b442aa94e1714ddd8c9c53 (patch)
tree4df38190de637662d9d92545ab4225756a688ea8
parente5c8636a5f608af83d918e62533306cf7ddc7118 (diff)
added test cases for computation with abstract syntax terms
-rw-r--r--testsuite/runtime/eval/Test.gf28
-rw-r--r--testsuite/runtime/eval/eval.gfs29
-rw-r--r--testsuite/runtime/eval/eval.gfs.gold50
3 files changed, 107 insertions, 0 deletions
diff --git a/testsuite/runtime/eval/Test.gf b/testsuite/runtime/eval/Test.gf
new file mode 100644
index 000000000..7d7edf369
--- /dev/null
+++ b/testsuite/runtime/eval/Test.gf
@@ -0,0 +1,28 @@
+abstract Test = {
+
+fun f : Int -> Int -> Int ;
+
+fun g : Int -> Int ;
+def g 1 = 2 ;
+
+fun g2 : Int -> Int -> Int ;
+def g2 1 x = x ;
+
+fun g0 : Int -> Int -> Int ;
+def g0 = g2 ;
+
+fun const : Int -> Int -> Int ;
+def const x _ = x ;
+
+cat Nat ;
+
+data zero : Nat ;
+ succ : Nat -> Nat ;
+ err : Nat ;
+
+fun dec : Nat -> Nat ;
+def dec zero = zero ;
+ dec (succ n) = n ;
+ dec n = err ; -- for fall through checking
+
+} \ No newline at end of file
diff --git a/testsuite/runtime/eval/eval.gfs b/testsuite/runtime/eval/eval.gfs
new file mode 100644
index 000000000..1ce8cb1b5
--- /dev/null
+++ b/testsuite/runtime/eval/eval.gfs
@@ -0,0 +1,29 @@
+i testsuite/runtime/eval/Test.gf
+
+pt -compute \x -> x 1
+pt -compute ? 1
+pt -compute (\x -> x 1) ?
+pt -compute unknown_var
+pt -compute unknown_var 1
+pt -compute 1 2
+pt -compute f 1 2
+pt -compute \x -> x
+pt -compute ?666
+pt -compute f
+pt -compute (\x -> x 2) (f 1)
+pt -compute (\x -> x 2) 1
+pt -compute g 1
+pt -compute g 0
+pt -compute \x -> g x
+pt -compute g ?
+pt -compute (\x -> x 5) (g2 1)
+pt -compute (\x -> x 3) (\x -> x)
+pt -compute g0
+pt -compute (\x -> x 3.2) (\x -> f x)
+pt -compute g0 2.3
+pt -compute g0 ((\x -> f x) 0) 1
+pt -compute const 3.14 "pi"
+pt -compute dec (succ (succ zero))
+pt -compute dec (succ ?)
+pt -compute \x -> dec x
+pt -compute dec ?
diff --git a/testsuite/runtime/eval/eval.gfs.gold b/testsuite/runtime/eval/eval.gfs.gold
new file mode 100644
index 000000000..87b0b8cc4
--- /dev/null
+++ b/testsuite/runtime/eval/eval.gfs.gold
@@ -0,0 +1,50 @@
+\v0 -> v0 1
+
+? 1
+
+? 1
+
+unknown variable unknown_var
+unknown variable unknown_var
+literal of function type
+f 1 2
+
+\v0 -> v0
+
+?666
+
+f
+
+f 1 2
+
+literal of function type
+2
+
+g 0
+
+\v0 -> g v0
+
+g ?
+
+5
+
+3
+
+g2
+
+f 3.2
+
+g2 2.3
+
+g2 (f 0) 1
+
+3.14
+
+succ zero
+
+?
+
+\v0 -> dec v0
+
+dec ?
+