]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - misc/source/gmqcc-src/tests/operators.qc
By fteqcc, hello gmqcc
[voretournament/voretournament.git] / misc / source / gmqcc-src / tests / operators.qc
diff --git a/misc/source/gmqcc-src/tests/operators.qc b/misc/source/gmqcc-src/tests/operators.qc
new file mode 100644 (file)
index 0000000..46bd6bb
--- /dev/null
@@ -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");
+}