diff options
| author | krasimir <krasimir@chalmers.se> | 2009-05-23 21:43:24 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-05-23 21:43:24 +0000 |
| commit | 3efb7a671bb9f40ac0b442aa94e1714ddd8c9c53 (patch) | |
| tree | 4df38190de637662d9d92545ab4225756a688ea8 /testsuite | |
| parent | e5c8636a5f608af83d918e62533306cf7ddc7118 (diff) | |
added test cases for computation with abstract syntax terms
Diffstat (limited to 'testsuite')
| -rw-r--r-- | testsuite/runtime/eval/Test.gf | 28 | ||||
| -rw-r--r-- | testsuite/runtime/eval/eval.gfs | 29 | ||||
| -rw-r--r-- | testsuite/runtime/eval/eval.gfs.gold | 50 |
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 ?
+
|
