2002-06-25 Dick Porter <dick@ximian.com>
[mono.git] / mcs / tests / test-40.cs
index d22fa8d391a2749c1fd18f71ea282e905435db36..1fa88aba072b8ce05cd20e90c0b5d6a8edb47ac6 100644 (file)
@@ -2,22 +2,78 @@ using System;
 
 public class Blah {
 
+       enum Bar {
+               a = MyEnum.Foo,
+               b = A.c,
+               c = MyEnum.Bar,
+               d = myconstant
+       }
+       
        public enum MyEnum : byte {
                Foo = 254,
-               Bar
+               Bar = B.y
+       }
+
+       enum A {
+               a, b, c
        }
        
+       enum B {
+               x, y, z
+       }
+       
+       enum AA : byte { a, b }
+       enum BB : ulong { x, y }
+
+       const int myconstant = 30;
+
+       enum Compute { two = AA.b + BB.y }
+       
        public static int Main ()
        {
-               Console.WriteLine ("Enum emission test");
-
                byte b = (byte) MyEnum.Foo;
-
+               
                Console.WriteLine ("Foo has a value of " + b);
 
-               if (b == 254)
-                       return 0;
-               else
+               if (b != 254)
+                       return 1;
+               
+               int i = (int) A.a;
+               int j = (int) B.x;
+               int k = (int) A.c;
+               int l = (int) AA.b + 1;
+
+               if (Compute.two != 2)
+                       return 10;
+               if (i != j)
+                       return 1;
+
+               if (k != l)
                        return 1;
+
+               A var = A.b;
+
+               i = (int) Bar.a;
+
+               if (i != 254)
+                       return 1;
+
+               i = (int) Bar.b;
+
+               if (i != 2)
+                       return 1;
+
+               j = (int) Bar.c;
+
+               if (j != 1)
+                       return 1;
+
+               j = (int) Bar.d;
+
+               if (j != 30)
+                       return 1;
+
+               Console.WriteLine ("Enum emission test okay");
+               return 0;
        }
 }