]> git.xonotic.org Git - voretournament/voretournament.git/blobdiff - misc/source/gmqcc-src/tests/ternary.qc
By fteqcc, hello gmqcc
[voretournament/voretournament.git] / misc / source / gmqcc-src / tests / ternary.qc
diff --git a/misc/source/gmqcc-src/tests/ternary.qc b/misc/source/gmqcc-src/tests/ternary.qc
new file mode 100644 (file)
index 0000000..bdac526
--- /dev/null
@@ -0,0 +1,43 @@
+void test(float cond, float v1, float v2, float a) {
+    print(ftos(cond ? v1 : v2), " ");
+    print( (cond ? v1 : v2) ? ( (a == 1) ? "a=1"
+                              : (a == 2) ? "a=2"
+                              : "a=other"
+                              )
+                            : "not met",
+          "\n");
+}
+
+void select_a(float x) {
+    print("select_a: ", ftos(x), "\n");
+}
+void select_b(float x) {
+    print("select_b: ", ftos(x), "\n");
+}
+
+void main() {
+    float a, b;
+    test(0, -99, 1, 1);
+    test(0, -99, 1, 2);
+    test(0, -99, 1, 3);
+    test(0, -99, 0, 1);
+    test(0, -99, 0, 2);
+    test(0, -99, 0, 3);
+    test(1, 1, -99, 1);
+    test(1, 1, -99, 2);
+    test(1, 1, -99, 3);
+    test(1, 0, -99, 1);
+    test(1, 0, -99, 2);
+    test(1, 0, -99, 3);
+
+    b = 5;
+    a = b ? 5 : 6;
+    print(ftos(a), "\n");
+    b ? a = 9 : a = 10;
+    print(ftos(a), "\n");
+    !b ? a = 9 : a = 10;
+    print(ftos(a), "\n");
+
+    ((1) ? select_a : select_b) (1);
+    ((0) ? select_a : select_b) (0);
+}