Added new testcases
authorMartin Perner <martin@perner.cc>
Tue, 18 May 2010 21:14:10 +0000 (23:14 +0200)
committerMartin Perner <martin@perner.cc>
Tue, 18 May 2010 21:14:10 +0000 (23:14 +0200)
codea/skinner33_17.0 [new file with mode: 0644]
codea/skinner33_17.call [new file with mode: 0644]
codea/skinner33_17.instr [new file with mode: 0644]
codea/skinner33_18.0 [new file with mode: 0644]
codea/skinner33_18.call [new file with mode: 0644]
codea/skinner33_18.instr [new file with mode: 0644]
codea/skinner33_19.0 [new file with mode: 0644]
codea/skinner33_19.call [new file with mode: 0644]
codea/skinner33_19.instr [new file with mode: 0644]

diff --git a/codea/skinner33_17.0 b/codea/skinner33_17.0
new file mode 100644 (file)
index 0000000..e6f4035
--- /dev/null
@@ -0,0 +1,45 @@
+struct foo bar end;
+
+method f1(a)
+       return 5 * a.foo;
+end;
+
+method f2(a)
+       return a.bar * this;
+end;
+
+method f3(a)
+       return (a.foo-3) < (a.bar-3);
+end;
+
+method f4(a)
+       return (a.foo*1) < 6;
+end;
+
+method f5(a)
+       return 5 < (a.bar * 1);
+end;
+
+method f6(a)
+       return (1 * a.foo) < this;
+end;
+
+method f7(a)
+       return a.foo < (a.bar * 1);
+end;
+
+method f8(a)
+       return a.foo < this;
+end;
+
+method f9(a)
+       return this < a.bar;
+end;
+
+method f10(a)
+       return a.foo < 6;
+end;
+
+method f11(a)
+       return 5 < a.bar;
+end;
diff --git a/codea/skinner33_17.call b/codea/skinner33_17.call
new file mode 100644 (file)
index 0000000..803f021
--- /dev/null
@@ -0,0 +1,28 @@
+
+long f1(long, long*);
+long f2(long, long*);
+long f3(long, long*);
+long f4(long, long*);
+long f5(long, long*);
+long f6(long, long*);
+long f7(long, long*);
+long f8(long, long*);
+long f9(long, long*);
+long f10(long, long*);
+long f11(long, long*);
+
+long muh[] = {5, 6};
+long kuh[] = {6, 5};
+
+RET(f1(4,muh) == 25 &&
+       f2(5,muh) == 30 &&
+       f3(5,muh) == 1 && f3(5,kuh) == 0 &&
+       f4(5,muh) == 1 && f4(5,kuh) == 0 &&
+       f5(5,muh) == 1 && f5(5,kuh) == 0 &&
+       f6(6,muh) == 0 && f6(6,kuh) == 0 &&
+       f7(5,muh) == 1 && f7(5,kuh) == 0 &&
+       f8(5,muh) == 0 && f8(7,kuh) == 1 &&
+       f9(5,muh) == 1 && f9(5,kuh) == 0 &&
+       f10(5,muh) == 1 && f10(5,kuh) == 0 &&
+       f11(5,muh) == 1 && f11(5,kuh) == 0
+);
diff --git a/codea/skinner33_17.instr b/codea/skinner33_17.instr
new file mode 100644 (file)
index 0000000..c67f579
--- /dev/null
@@ -0,0 +1 @@
+93
diff --git a/codea/skinner33_18.0 b/codea/skinner33_18.0
new file mode 100644 (file)
index 0000000..41e359c
--- /dev/null
@@ -0,0 +1,38 @@
+struct foo bar end;
+
+method f1(a)
+       return (a.foo * 1) = 5;
+end;
+
+method f2(a)
+       return 5 = (a.bar * 1);
+end;
+
+method f3(a)
+       return (a.foo * 1) = this;
+end;
+
+method f4(a)
+       return this = (a.bar * 1);
+end;
+
+method f5(a)
+       return a.foo = (this * 1);
+end;
+
+method f6(a)
+       return a.foo = 5;
+end;
+
+method f7(a)
+       return 5 = a.bar;
+end;
+
+method f8(a)
+       return a.foo = this;
+end;
+
+method f9(a)
+       return this = a.bar;
+end;
+
diff --git a/codea/skinner33_18.call b/codea/skinner33_18.call
new file mode 100644 (file)
index 0000000..f8d0291
--- /dev/null
@@ -0,0 +1,24 @@
+
+long f1(long, long*);
+long f2(long, long*);
+long f3(long, long*);
+long f4(long, long*);
+long f5(long, long*);
+long f6(long, long*);
+long f7(long, long*);
+long f8(long, long*);
+long f9(long, long*);
+
+long muh[] = {5, 6};
+long kuh[] = {6, 5};
+
+RET(f1(4,muh) == 1 && f1(5,kuh) == 0 &&
+       f2(5,muh) == 0 && f2(5,kuh) == 1 &&
+       f3(5,muh) == 1 && f3(5,kuh) == 0 &&
+       f4(5,muh) == 0 && f4(5,kuh) == 1 &&
+       f5(5,muh) == 1 && f5(5,kuh) == 0 &&
+       f6(6,muh) == 1 && f6(6,kuh) == 0 &&
+       f7(5,muh) == 0 && f7(5,kuh) == 1 &&
+       f8(5,muh) == 1 && f8(5,kuh) == 0 &&
+       f9(5,muh) == 0 && f9(5,kuh) == 1 
+);
diff --git a/codea/skinner33_18.instr b/codea/skinner33_18.instr
new file mode 100644 (file)
index 0000000..dde92dd
--- /dev/null
@@ -0,0 +1 @@
+82
diff --git a/codea/skinner33_19.0 b/codea/skinner33_19.0
new file mode 100644 (file)
index 0000000..3a12e4b
--- /dev/null
@@ -0,0 +1,31 @@
+method f1(a b)
+       return not(a or b);
+end;
+
+method f2(a b)
+       return not(not(a or b));
+end;
+
+method f3(a b)
+       return not(a - b);
+end;
+
+method f4(a b)
+       return not(not(a - b));
+end;
+
+method f5(a b)
+       return not(a < b);
+end;
+
+method f6(a b)
+       return not(not(a < b));
+end;
+
+method f7(a b)
+       return not(a = b);
+end;
+
+method f8(a b)
+       return not(not(a = b));
+end;
diff --git a/codea/skinner33_19.call b/codea/skinner33_19.call
new file mode 100644 (file)
index 0000000..2d6d7b8
--- /dev/null
@@ -0,0 +1,22 @@
+long f1(long,long,long);
+long f2(long,long,long);
+long f3(long,long,long);
+long f4(long,long,long);
+long f5(long,long,long);
+long f6(long,long,long);
+long f7(long,long,long);
+long f8(long,long,long);
+
+RET(
+f1(0,0,0) == 1 && f1(0,1,1) == 0 &&
+f2(0,0,0) == 0 && f2(0,1,1) == 1 &&
+
+f3(0,4,4) == 1 && f3(0,4,3) == 0 &&
+f4(0,4,4) == 0 && f4(0,4,3) == 1 &&
+
+f5(0,5,4) == 1 && f5(0,4,5) == 0 &&
+f6(0,5,4) == 0 && f6(0,4,5) == 1 &&
+
+f7(0,5,4) == 1 && f7(0,5,5) == 0 &&
+f8(0,5,4) == 0 && f8(0,5,5) == 1 
+);
diff --git a/codea/skinner33_19.instr b/codea/skinner33_19.instr
new file mode 100644 (file)
index 0000000..d22307c
--- /dev/null
@@ -0,0 +1 @@
+88