1 using System;
2 using cpp11_strongly_typed_enumerationsNamespace;
3 
4 public class cpp11_strongly_typed_enumerations_runme {
5 
enumCheck(int actual, int expected)6   public static int enumCheck(int actual, int expected) {
7     if (actual != expected)
8       throw new ApplicationException("Enum value mismatch. Expected " + expected + " Actual: " + actual);
9     return expected + 1;
10   }
11 
Main()12   public static void Main() {
13     int val = 0;
14     val = enumCheck((int)Enum1.Val1, val);
15     val = enumCheck((int)Enum1.Val2, val);
16     val = enumCheck((int)Enum1.Val3, 13);
17     val = enumCheck((int)Enum1.Val4, val);
18     val = enumCheck((int)Enum1.Val5a, 13);
19     val = enumCheck((int)Enum1.Val6a, val);
20 
21     val = 0;
22     val = enumCheck((int)Enum2.Val1, val);
23     val = enumCheck((int)Enum2.Val2, val);
24     val = enumCheck((int)Enum2.Val3, 23);
25     val = enumCheck((int)Enum2.Val4, val);
26     val = enumCheck((int)Enum2.Val5b, 23);
27     val = enumCheck((int)Enum2.Val6b, val);
28 
29     val = 0;
30     val = enumCheck((int)Enum4.Val1, val);
31     val = enumCheck((int)Enum4.Val2, val);
32     val = enumCheck((int)Enum4.Val3, 43);
33     val = enumCheck((int)Enum4.Val4, val);
34 
35     val = 0;
36     val = enumCheck((int)Enum5.Val1, val);
37     val = enumCheck((int)Enum5.Val2, val);
38     val = enumCheck((int)Enum5.Val3, 53);
39     val = enumCheck((int)Enum5.Val4, val);
40 
41     val = 0;
42     val = enumCheck((int)Enum6.Val1, val);
43     val = enumCheck((int)Enum6.Val2, val);
44     val = enumCheck((int)Enum6.Val3, 63);
45     val = enumCheck((int)Enum6.Val4, val);
46 
47     val = 0;
48     val = enumCheck((int)Enum7td.Val1, val);
49     val = enumCheck((int)Enum7td.Val2, val);
50     val = enumCheck((int)Enum7td.Val3, 73);
51     val = enumCheck((int)Enum7td.Val4, val);
52 
53     val = 0;
54     val = enumCheck((int)Enum8.Val1, val);
55     val = enumCheck((int)Enum8.Val2, val);
56     val = enumCheck((int)Enum8.Val3, 83);
57     val = enumCheck((int)Enum8.Val4, val);
58 
59     val = 0;
60     val = enumCheck((int)Enum10.Val1, val);
61     val = enumCheck((int)Enum10.Val2, val);
62     val = enumCheck((int)Enum10.Val3, 103);
63     val = enumCheck((int)Enum10.Val4, val);
64 
65     val = 0;
66     val = enumCheck((int)Class1.Enum12.Val1, 1121);
67     val = enumCheck((int)Class1.Enum12.Val2, 1122);
68     val = enumCheck((int)Class1.Enum12.Val3, val);
69     val = enumCheck((int)Class1.Enum12.Val4, val);
70     val = enumCheck((int)Class1.Enum12.Val5c, 1121);
71     val = enumCheck((int)Class1.Enum12.Val6c, val);
72 
73     val = 0;
74     val = enumCheck((int)Class1.Enum13.Val1, 1131);
75     val = enumCheck((int)Class1.Enum13.Val2, 1132);
76     val = enumCheck((int)Class1.Enum13.Val3, val);
77     val = enumCheck((int)Class1.Enum13.Val4, val);
78     val = enumCheck((int)Class1.Enum13.Val5d, 1131);
79     val = enumCheck((int)Class1.Enum13.Val6d, val);
80 
81     val = 0;
82     val = enumCheck((int)Class1.Enum14.Val1, 1141);
83     val = enumCheck((int)Class1.Enum14.Val2, 1142);
84     val = enumCheck((int)Class1.Enum14.Val3, val);
85     val = enumCheck((int)Class1.Enum14.Val4, val);
86     val = enumCheck((int)Class1.Enum14.Val5e, 1141);
87     val = enumCheck((int)Class1.Enum14.Val6e, val);
88 
89     val = 0;
90     val = enumCheck((int)Class1.Struct1.Enum12.Val1, 3121);
91     val = enumCheck((int)Class1.Struct1.Enum12.Val2, 3122);
92     val = enumCheck((int)Class1.Struct1.Enum12.Val3, val);
93     val = enumCheck((int)Class1.Struct1.Enum12.Val4, val);
94     val = enumCheck((int)Class1.Struct1.Enum12.Val5f, 3121);
95     val = enumCheck((int)Class1.Struct1.Enum12.Val6f, val);
96 
97     val = 0;
98     val = enumCheck((int)Class1.Struct1.Enum13.Val1, 3131);
99     val = enumCheck((int)Class1.Struct1.Enum13.Val2, 3132);
100     val = enumCheck((int)Class1.Struct1.Enum13.Val3, val);
101     val = enumCheck((int)Class1.Struct1.Enum13.Val4, val);
102 
103     val = 0;
104     val = enumCheck((int)Class1.Struct1.Enum14.Val1, 3141);
105     val = enumCheck((int)Class1.Struct1.Enum14.Val2, 3142);
106     val = enumCheck((int)Class1.Struct1.Enum14.Val3, val);
107     val = enumCheck((int)Class1.Struct1.Enum14.Val4, val);
108     val = enumCheck((int)Class1.Struct1.Enum14.Val5g, 3141);
109     val = enumCheck((int)Class1.Struct1.Enum14.Val6g, val);
110 
111     val = 0;
112     val = enumCheck((int)Class2.Enum12.Val1, 2121);
113     val = enumCheck((int)Class2.Enum12.Val2, 2122);
114     val = enumCheck((int)Class2.Enum12.Val3, val);
115     val = enumCheck((int)Class2.Enum12.Val4, val);
116     val = enumCheck((int)Class2.Enum12.Val5h, 2121);
117     val = enumCheck((int)Class2.Enum12.Val6h, val);
118 
119     val = 0;
120     val = enumCheck((int)Class2.Enum13.Val1, 2131);
121     val = enumCheck((int)Class2.Enum13.Val2, 2132);
122     val = enumCheck((int)Class2.Enum13.Val3, val);
123     val = enumCheck((int)Class2.Enum13.Val4, val);
124     val = enumCheck((int)Class2.Enum13.Val5i, 2131);
125     val = enumCheck((int)Class2.Enum13.Val6i, val);
126 
127     val = 0;
128     val = enumCheck((int)Class2.Enum14.Val1, 2141);
129     val = enumCheck((int)Class2.Enum14.Val2, 2142);
130     val = enumCheck((int)Class2.Enum14.Val3, val);
131     val = enumCheck((int)Class2.Enum14.Val4, val);
132     val = enumCheck((int)Class2.Enum14.Val5j, 2141);
133     val = enumCheck((int)Class2.Enum14.Val6j, val);
134 
135     val = 0;
136     val = enumCheck((int)Class2.Struct1.Enum12.Val1, 4121);
137     val = enumCheck((int)Class2.Struct1.Enum12.Val2, 4122);
138     val = enumCheck((int)Class2.Struct1.Enum12.Val3, val);
139     val = enumCheck((int)Class2.Struct1.Enum12.Val4, val);
140     val = enumCheck((int)Class2.Struct1.Enum12.Val5k, 4121);
141     val = enumCheck((int)Class2.Struct1.Enum12.Val6k, val);
142 
143     val = 0;
144     val = enumCheck((int)Class2.Struct1.Enum13.Val1, 4131);
145     val = enumCheck((int)Class2.Struct1.Enum13.Val2, 4132);
146     val = enumCheck((int)Class2.Struct1.Enum13.Val3, val);
147     val = enumCheck((int)Class2.Struct1.Enum13.Val4, val);
148     val = enumCheck((int)Class2.Struct1.Enum13.Val5l, 4131);
149     val = enumCheck((int)Class2.Struct1.Enum13.Val6l, val);
150 
151     val = 0;
152     val = enumCheck((int)Class2.Struct1.Enum14.Val1, 4141);
153     val = enumCheck((int)Class2.Struct1.Enum14.Val2, 4142);
154     val = enumCheck((int)Class2.Struct1.Enum14.Val3, val);
155     val = enumCheck((int)Class2.Struct1.Enum14.Val4, val);
156     val = enumCheck((int)Class2.Struct1.Enum14.Val5m, 4141);
157     val = enumCheck((int)Class2.Struct1.Enum14.Val6m, val);
158 
159     Class1 class1 = new Class1();
160     enumCheck((int)class1.class1Test1(Enum1.Val5a), 13);
161     enumCheck((int)class1.class1Test2(Class1.Enum12.Val5c), 1121);
162     enumCheck((int)class1.class1Test3(Class1.Struct1.Enum12.Val5f), 3121);
163 
164     enumCheck((int)cpp11_strongly_typed_enumerations.globalTest1(Enum1.Val5a), 13);
165     enumCheck((int)cpp11_strongly_typed_enumerations.globalTest2(Class1.Enum12.Val5c), 1121);
166     enumCheck((int)cpp11_strongly_typed_enumerations.globalTest3(Class1.Struct1.Enum12.Val5f), 3121);
167   }
168 }
169 
170