X-Git-Url: https://de.git.xonotic.org/?p=voretournament%2Fvoretournament.git;a=blobdiff_plain;f=misc%2Fsource%2Fgmqcc-src%2Ftests%2Foperators.qc;fp=misc%2Fsource%2Fgmqcc-src%2Ftests%2Foperators.qc;h=46bd6bbeb81c2268edb8de30f86f74e18fad9b32;hp=0000000000000000000000000000000000000000;hb=f345f0f6d2962633e2e3a560b044ab1b91a8f937;hpb=b2df32d96df3e954d54f6e4b9bbb6c98d77ef507 diff --git a/misc/source/gmqcc-src/tests/operators.qc b/misc/source/gmqcc-src/tests/operators.qc new file mode 100644 index 00000000..46bd6bbe --- /dev/null +++ b/misc/source/gmqcc-src/tests/operators.qc @@ -0,0 +1,57 @@ +.float mem; + +void main() { + float a; + + // regular binary+store + a = 5; + print(ftos(a += 1), " = "); + print(ftos(a), "\n"); + + entity e = spawn(); + e.mem = 10; + print(ftos(e.mem += 1), " = "); + print(ftos(e.mem), "\n"); + + // prefix + print(ftos(++a), " = "); + print(ftos(a), "\n"); + print(ftos(--a), " = "); + print(ftos(a), "\n"); + print(ftos(++e.mem), " = "); + print(ftos(e.mem), "\n"); + + // suffix + print(ftos(a++), " = "); + print(ftos(a-1), "\n"); + // the CLANG way: + a = 3; + print(ftos((a++ + a) + a), " = 11\n"); + + // check if minus translates + print(ftos(a--), "\n"); + print(ftos(--a), "\n"); + + // postfix on members + print(ftos(e.mem--), " = "); + print(ftos(e.mem+1), "\n"); + + // compounds in general + a = 3; + print(ftos(a *= 2), " = 6\n"); + print(ftos(a /= 2), " = 3\n"); + + // compounds on vectors + vector v; + v = '3 4 5'; + print(vtos(v *= 2), " = '6 8 10'\n"); + print(vtos(v /= 2), " = '3 4 5'\n"); + + // bit compounds + a = 1; + print(ftos(a |= 2), " = 3\n"); + print(ftos(a &= 6), " = 2\n"); + a = 7; + + print(ftos(a &~= 3), " = 4\n"); +}