Better enumeration test
authorDale Weiler <killfieldengine@gmail.com>
Thu, 10 Jan 2013 20:50:42 +0000 (20:50 +0000)
committerDale Weiler <killfieldengine@gmail.com>
Thu, 10 Jan 2013 20:50:42 +0000 (20:50 +0000)
tests/enum.qc
tests/enum.tmpl

index 39b4196..5218633 100644 (file)
@@ -1,25 +1,47 @@
-void(string, ...)   print  = #1;
-string(float)       ftos   = #2;
+void(string, ...)   print  = #1;enum {
+    // this behaviour is confusing, but I like that
+    // we support it.
+    __ = (__ - 1),
+    A  = (__ + 1),
+
+    B,
+    C
+};
 
 enum {
-    FOO,
-    BAR,
-    BAZ,
-    OMG = BAR,
-    POO,
-    LAST = OMG + POO
+    D = C + B,
+    E = C + C,
+    F = C + D,
 };
 
-enum {A};
-enum {B=A+1};
-enum {C=A};
+enum {
+    G = (B + F), H = (C + F),
+    I = (D + F), J = (B + I)
+};
+enum {
+    K = A + B - C + D - E + F *
+        G - H + I - J + A - B -
+        J + A,
+    L,
+    M,
+    N
+};
 
+void (string, ...) print = #1;
+string (float)  ftos = #2;
 void main() {
-    print(ftos(FOO), "\n");
-    print(ftos(BAR), "\n");
-    print(ftos(BAZ), "\n");
-    print(ftos(OMG), "\n");
-    print(ftos(POO), "\n");
-    print(ftos(LAST), "\n");
+    print(ftos(A), "\n");
+    print(ftos(B), "\n");
     print(ftos(C), "\n");
-}
+    print(ftos(D), "\n");
+    print(ftos(E), "\n");
+    print(ftos(F), "\n");
+    print(ftos(G), "\n");
+    print(ftos(H), "\n");
+    print(ftos(I), "\n");
+    print(ftos(J), "\n");
+    print(ftos(K), "\n");
+    print(ftos(L), "\n");
+    print(ftos(M), "\n");
+    print(ftos(N), "\n");
+};
index 11ef9e8..28cbd57 100644 (file)
@@ -5,7 +5,14 @@ C: -std=fteqcc
 M: 0
 M: 1
 M: 2
-M: 1
-M: 2
 M: 3
-M: 0
+M: 4
+M: 5
+M: 6
+M: 7
+M: 8
+M: 9
+M: 10
+M: 11
+M: 12
+M: 13