X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=tests%2Fternary.qc;h=bdac5264191d8ed88442ee98cd278df77d35fb41;hp=a8e0bd73b5d037adabc8664a4405a9fd180b42a2;hb=94c2936bfad224529cf326d539a5cdac0a286183;hpb=b966cd4f4d10f1d9550401571e24a23e774ad6ce diff --git a/tests/ternary.qc b/tests/ternary.qc index a8e0bd7..bdac526 100644 --- a/tests/ternary.qc +++ b/tests/ternary.qc @@ -1,36 +1,43 @@ -void print(...) = #1; -string ftos (float) = #2; - 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"); + 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); + 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"); - 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); }