[gesamt] Added two simples testcases
authorMartin Perner <martin@perner.cc>
Tue, 8 Jun 2010 22:29:43 +0000 (00:29 +0200)
committerMartin Perner <martin@perner.cc>
Wed, 9 Jun 2010 16:08:56 +0000 (18:08 +0200)
gesamt/skinner33_00.0 [new file with mode: 0644]
gesamt/skinner33_00.call [new file with mode: 0644]
gesamt/skinner33_00.instr [new file with mode: 0644]
gesamt/skinner33_01.0 [new file with mode: 0644]
gesamt/skinner33_01.call [new file with mode: 0644]
gesamt/skinner33_01.instr [new file with mode: 0644]

diff --git a/gesamt/skinner33_00.0 b/gesamt/skinner33_00.0
new file mode 100644 (file)
index 0000000..adf9ee9
--- /dev/null
@@ -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 (file)
index 0000000..dd2d363
--- /dev/null
@@ -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 (file)
index 0000000..ea70ce0
--- /dev/null
@@ -0,0 +1 @@
+72
diff --git a/gesamt/skinner33_01.0 b/gesamt/skinner33_01.0
new file mode 100644 (file)
index 0000000..69c51c6
--- /dev/null
@@ -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 (file)
index 0000000..5af3034
--- /dev/null
@@ -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 (file)
index 0000000..871727d
--- /dev/null
@@ -0,0 +1 @@
+84