]> git.xonotic.org Git - xonotic/gmqcc.git/commitdiff
Adding truth-flags testsuite for strings
authorWolfgang Bumiller <blub@speed.at>
Sat, 22 Dec 2012 16:36:06 +0000 (17:36 +0100)
committerWolfgang Bumiller <blub@speed.at>
Sat, 22 Dec 2012 16:36:06 +0000 (17:36 +0100)
tests/truth-flags-1-s.tmpl [new file with mode: 0644]
tests/truth-flags-1.tmpl [new file with mode: 0644]
tests/truth-flags-2-s.tmpl [new file with mode: 0644]
tests/truth-flags-2.qc [new file with mode: 0644]
tests/truth-flags-2.tmpl [new file with mode: 0644]
tests/truth-flags-3-s.tmpl [new file with mode: 0644]
tests/truth-flags-3.tmpl [new file with mode: 0644]

diff --git a/tests/truth-flags-1-s.tmpl b/tests/truth-flags-1-s.tmpl
new file mode 100644 (file)
index 0000000..770f306
--- /dev/null
@@ -0,0 +1,14 @@
+I: truth-flags-2.qc
+D: logic flags
+T: -execute
+C: -std=fteqcc -fshort-logic
+M:                  ! & | i N
+M: 'str', 'str' -> 0 1 1 1 0
+M: 'str', ''    -> 0 1 1 1 0
+M: 'str', 0     -> 0 0 1 1 0
+M: '',    'str' -> 1 1 1 1 0
+M: '',    ''    -> 1 1 1 1 0
+M: '',    0     -> 1 0 1 1 0
+M: 0,     'str' -> 1 0 1 0 1
+M: 0,     ''    -> 1 0 1 0 1
+M: 0,     0     -> 1 0 0 0 1
diff --git a/tests/truth-flags-1.tmpl b/tests/truth-flags-1.tmpl
new file mode 100644 (file)
index 0000000..7562374
--- /dev/null
@@ -0,0 +1,14 @@
+I: truth-flags-2.qc
+D: logic flags
+T: -execute
+C: -std=fteqcc
+M:                  ! & | i N
+M: 'str', 'str' -> 0 1 1 1 0
+M: 'str', ''    -> 0 1 1 1 0
+M: 'str', 0     -> 0 0 1 1 0
+M: '',    'str' -> 1 1 1 1 0
+M: '',    ''    -> 1 1 1 1 0
+M: '',    0     -> 1 0 1 1 0
+M: 0,     'str' -> 1 0 1 0 1
+M: 0,     ''    -> 1 0 1 0 1
+M: 0,     0     -> 1 0 0 0 1
diff --git a/tests/truth-flags-2-s.tmpl b/tests/truth-flags-2-s.tmpl
new file mode 100644 (file)
index 0000000..3de75eb
--- /dev/null
@@ -0,0 +1,14 @@
+I: truth-flags-2.qc
+D: logic flags
+T: -execute
+C: -std=fteqcc -fshort-logic -ftrue-empty-strings
+M:                  ! & | i N
+M: 'str', 'str' -> 0 1 1 1 0
+M: 'str', ''    -> 0 1 1 1 0
+M: 'str', 0     -> 0 0 1 1 0
+M: '',    'str' -> 0 1 1 1 0
+M: '',    ''    -> 0 1 1 1 0
+M: '',    0     -> 0 0 1 1 0
+M: 0,     'str' -> 1 0 1 0 1
+M: 0,     ''    -> 1 0 1 0 1
+M: 0,     0     -> 1 0 0 0 1
diff --git a/tests/truth-flags-2.qc b/tests/truth-flags-2.qc
new file mode 100644 (file)
index 0000000..0c10708
--- /dev/null
@@ -0,0 +1,30 @@
+void   print(...)   = #1;
+string ftos (float) = #2;
+
+float test_s_not  (string s)           { return !s; }
+float test_s_and  (string s, string t) { return s && t; }
+float test_s_or   (string s, string t) { return s || t; }
+float test_s_if   (string s)           { if (s) return 1; return 0; }
+float test_s_ifnot(string s)           { if not (s) return 1; return 0; }
+
+void test(string s, string 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");
+}
+
+string nuls;
+void main() {
+    print("                ! & | i N\n");
+    print("'str', 'str' -> "); test("FULL", "FULL");
+    print("'str', ''    -> "); test("FULL", ""    );
+    print("'str', 0     -> "); test("FULL", nuls  );
+    print("'',    'str' -> "); test("",     "FULL");
+    print("'',    ''    -> "); test("",     ""    );
+    print("'',    0     -> "); test("",     nuls  );
+    print("0,     'str' -> "); test(nuls,   "FULL");
+    print("0,     ''    -> "); test(nuls,   ""    );
+    print("0,     0     -> "); test(nuls,   nuls  );
+}
diff --git a/tests/truth-flags-2.tmpl b/tests/truth-flags-2.tmpl
new file mode 100644 (file)
index 0000000..d9bb543
--- /dev/null
@@ -0,0 +1,14 @@
+I: truth-flags-2.qc
+D: logic flags
+T: -execute
+C: -std=fteqcc -ftrue-empty-strings
+M:                  ! & | i N
+M: 'str', 'str' -> 0 1 1 1 0
+M: 'str', ''    -> 0 1 1 1 0
+M: 'str', 0     -> 0 0 1 1 0
+M: '',    'str' -> 0 1 1 1 0
+M: '',    ''    -> 0 1 1 1 0
+M: '',    0     -> 0 0 1 1 0
+M: 0,     'str' -> 1 0 1 0 1
+M: 0,     ''    -> 1 0 1 0 1
+M: 0,     0     -> 1 0 0 0 1
diff --git a/tests/truth-flags-3-s.tmpl b/tests/truth-flags-3-s.tmpl
new file mode 100644 (file)
index 0000000..1ebd56b
--- /dev/null
@@ -0,0 +1,14 @@
+I: truth-flags-2.qc
+D: logic flags
+T: -execute
+C: -std=fteqcc -fshort-logic -ffalse-empty-strings
+M:                  ! & | i N
+M: 'str', 'str' -> 0 1 1 1 0
+M: 'str', ''    -> 0 0 1 1 0
+M: 'str', 0     -> 0 0 1 1 0
+M: '',    'str' -> 1 0 1 0 1
+M: '',    ''    -> 1 0 0 0 1
+M: '',    0     -> 1 0 0 0 1
+M: 0,     'str' -> 1 0 1 0 1
+M: 0,     ''    -> 1 0 0 0 1
+M: 0,     0     -> 1 0 0 0 1
diff --git a/tests/truth-flags-3.tmpl b/tests/truth-flags-3.tmpl
new file mode 100644 (file)
index 0000000..f166dda
--- /dev/null
@@ -0,0 +1,14 @@
+I: truth-flags-2.qc
+D: logic flags
+T: -execute
+C: -std=fteqcc -ffalse-empty-strings
+M:                  ! & | i N
+M: 'str', 'str' -> 0 1 1 1 0
+M: 'str', ''    -> 0 0 1 1 0
+M: 'str', 0     -> 0 0 1 1 0
+M: '',    'str' -> 1 0 1 0 1
+M: '',    ''    -> 1 0 0 0 1
+M: '',    0     -> 1 0 0 0 1
+M: 0,     'str' -> 1 0 1 0 1
+M: 0,     ''    -> 1 0 0 0 1
+M: 0,     0     -> 1 0 0 0 1