From: Wolfgang Bumiller Date: Sat, 22 Dec 2012 16:55:55 +0000 (+0100) Subject: Test cases for -fcorrect-logic X-Git-Tag: 0.2~12^2~10 X-Git-Url: https://git.xonotic.org/?a=commitdiff_plain;h=949cd9bb063f5ac8218d3360bfaf1389b04a15a2;p=xonotic%2Fgmqcc.git Test cases for -fcorrect-logic --- diff --git a/tests/correct-logic-1-s.tmpl b/tests/correct-logic-1-s.tmpl new file mode 100644 index 0000000..e3f3451 --- /dev/null +++ b/tests/correct-logic-1-s.tmpl @@ -0,0 +1,12 @@ +I: correct-logic.qc +D: vector logic flags +T: -execute +C: -std=fteqcc -fshort-logic +M: ! & | i N +M: 0, 0 -> 1 0 0 0 1 +M: 0, x -> 1 0 1 0 1 +M: x, 0 -> 0 0 1 1 0 +M: x, x -> 0 1 1 1 0 +M: 0, y -> 1 0 0 0 1 +M: y, 0 -> 0 0 0 0 1 +M: y, y -> 0 0 0 0 1 diff --git a/tests/correct-logic-1.tmpl b/tests/correct-logic-1.tmpl new file mode 100644 index 0000000..b151f46 --- /dev/null +++ b/tests/correct-logic-1.tmpl @@ -0,0 +1,12 @@ +I: correct-logic.qc +D: vector logic flags +T: -execute +C: -std=fteqcc +M: ! & | i N +M: 0, 0 -> 1 0 0 0 1 +M: 0, x -> 1 0 1 0 1 +M: x, 0 -> 0 0 1 1 0 +M: x, x -> 0 1 1 1 0 +M: 0, y -> 1 0 0 0 1 +M: y, 0 -> 0 0 0 0 1 +M: y, y -> 0 0 0 0 1 diff --git a/tests/correct-logic-2-s.tmpl b/tests/correct-logic-2-s.tmpl new file mode 100644 index 0000000..a7ada6e --- /dev/null +++ b/tests/correct-logic-2-s.tmpl @@ -0,0 +1,12 @@ +I: correct-logic.qc +D: vector logic flags +T: -execute +C: -std=fteqcc -fcorrect-logic -fshort-logic +M: ! & | i N +M: 0, 0 -> 1 0 0 0 1 +M: 0, x -> 1 0 1 0 1 +M: x, 0 -> 0 0 1 1 0 +M: x, x -> 0 1 1 1 0 +M: 0, y -> 1 0 1 0 1 +M: y, 0 -> 0 0 1 1 0 +M: y, y -> 0 1 1 1 0 diff --git a/tests/correct-logic-2.tmpl b/tests/correct-logic-2.tmpl new file mode 100644 index 0000000..7ecd3df --- /dev/null +++ b/tests/correct-logic-2.tmpl @@ -0,0 +1,12 @@ +I: correct-logic.qc +D: vector logic flags +T: -execute +C: -std=fteqcc -fcorrect-logic +M: ! & | i N +M: 0, 0 -> 1 0 0 0 1 +M: 0, x -> 1 0 1 0 1 +M: x, 0 -> 0 0 1 1 0 +M: x, x -> 0 1 1 1 0 +M: 0, y -> 1 0 1 0 1 +M: y, 0 -> 0 0 1 1 0 +M: y, y -> 0 1 1 1 0 diff --git a/tests/correct-logic.qc b/tests/correct-logic.qc new file mode 100644 index 0000000..cb9a38d --- /dev/null +++ b/tests/correct-logic.qc @@ -0,0 +1,27 @@ +void print(...) = #1; +string ftos (float) = #2; + +float test_s_not (vector s) { return !s; } +float test_s_and (vector s, vector t) { return s && t; } +float test_s_or (vector s, vector t) { return s || t; } +float test_s_if (vector s) { if (s) return 1; return 0; } +float test_s_ifnot(vector s) { if not (s) return 1; return 0; } + +void test(vector s, vector t) { + print(ftos(!!test_s_not (s)), " "); + print(ftos(!!test_s_and (s, t)), " "); + print(ftos(!!test_s_or (s, t)), " "); + print(ftos(!!test_s_if (s)), " "); + print(ftos(!!test_s_ifnot(s)), "\n"); +} + +void main() { + print(" ! & | i N\n"); + print("0, 0 -> "); test('0 0 0', '0 0 0'); + print("0, x -> "); test('0 0 0', '1 0 0'); + print("x, 0 -> "); test('1 0 0', '0 0 0'); + print("x, x -> "); test('1 0 0', '1 0 0'); + print("0, y -> "); test('0 0 0', '0 1 0'); + print("y, 0 -> "); test('0 1 0', '0 0 0'); + print("y, y -> "); test('0 1 0', '0 1 0'); +}