From 034dd7c4389fc64072fafdc629cf8bdc4d3c0ce2 Mon Sep 17 00:00:00 2001 From: Martin Perner Date: Wed, 9 Jun 2010 00:29:43 +0200 Subject: [PATCH] [gesamt] Added two simples testcases --- gesamt/skinner33_00.0 | 19 +++++++++++++++++++ gesamt/skinner33_00.call | 6 ++++++ gesamt/skinner33_00.instr | 1 + gesamt/skinner33_01.0 | 16 ++++++++++++++++ gesamt/skinner33_01.call | 4 ++++ gesamt/skinner33_01.instr | 1 + 6 files changed, 47 insertions(+) create mode 100644 gesamt/skinner33_00.0 create mode 100644 gesamt/skinner33_00.call create mode 100644 gesamt/skinner33_00.instr create mode 100644 gesamt/skinner33_01.0 create mode 100644 gesamt/skinner33_01.call create mode 100644 gesamt/skinner33_01.instr diff --git a/gesamt/skinner33_00.0 b/gesamt/skinner33_00.0 new file mode 100644 index 0000000..adf9ee9 --- /dev/null +++ b/gesamt/skinner33_00.0 @@ -0,0 +1,19 @@ +struct a end; + +method even() + if this.a = 0 then + return 0; + else + this.a := this.a - 1; + return odd(); + end; +end; + +method odd() + if 0 = this.a then + return 1; + else + this.a := this.a - 1; + return even(); + end; +end; diff --git a/gesamt/skinner33_00.call b/gesamt/skinner33_00.call new file mode 100644 index 0000000..dd2d363 --- /dev/null +++ b/gesamt/skinner33_00.call @@ -0,0 +1,6 @@ + +extern long even(long*); + +long a[] = {0}, b[] = {1}, c[] = {2}, d[] = {3}; + +RET(even(a) == 0 && even(b) == 1 && even(c) == 0 && even(d) == 1); diff --git a/gesamt/skinner33_00.instr b/gesamt/skinner33_00.instr new file mode 100644 index 0000000..ea70ce0 --- /dev/null +++ b/gesamt/skinner33_00.instr @@ -0,0 +1 @@ +72 diff --git a/gesamt/skinner33_01.0 b/gesamt/skinner33_01.0 new file mode 100644 index 0000000..69c51c6 --- /dev/null +++ b/gesamt/skinner33_01.0 @@ -0,0 +1,16 @@ + +method even(x) + if x = 0 then + return 0; + else + return odd(x-1); + end; +end; + +method odd(x) + if 0 = x then + return 1; + else + return even((x-1)); + end; +end; diff --git a/gesamt/skinner33_01.call b/gesamt/skinner33_01.call new file mode 100644 index 0000000..5af3034 --- /dev/null +++ b/gesamt/skinner33_01.call @@ -0,0 +1,4 @@ + +long even(long, long); + +RET(even(42,0) == 0 && even(42,1) == 1 && even(42,2) == 0 && even(42,3) == 1); diff --git a/gesamt/skinner33_01.instr b/gesamt/skinner33_01.instr new file mode 100644 index 0000000..871727d --- /dev/null +++ b/gesamt/skinner33_01.instr @@ -0,0 +1 @@ +84 -- 2.25.1