add non-functional c1 Hatchery
[openc2e.git] / unittests / ifblocks.cos
blob86479942ae642f1958e8e48507d373c05532df63
1 * unit tests for DOIF/ELIF/ELSE/ENDI blocks and comparison operators
2 * fuzzie, 06/06/04
4 DBG: OUTS "# TEST: ifblocks: 24 tests"
5 DBG: OUTS "1..24"
7 * test equality
8 DOIF 1 eq 1
9  DBG: OUTS "ok 1"
10 ELSE
11  DBG: OUTS "not ok 1"
12 ENDI
13 DOIF 0.5 eq 0.5
14  DBG: OUTS "ok 2"
15 ELSE
16  DBG: OUTS "not ok 2"
17 ENDI
19 * test non-equality
20 DOIF 1 ne 2
21  DBG: OUTS "ok 3"
22 ELSE
23  DBG: OUTS "not ok 3"
24 ENDI
25 DOIF 0.5 ne 0.7
26  DBG: OUTS "ok 4"
27 ELSE
28  DBG: OUTS "not ok 4"
29 ENDI
31 * test greater than
32 DOIF 1 > 2
33  DBG: OUTS "not ok 5"
34 ELSE
35  DBG: OUTS "ok 5"
36 ENDI
38 * test less than
39 DOIF 1 < 2
40  DBG: OUTS "ok 6"
41 ELSE
42  DBG: OUTS "not ok 6"
43 ENDI
45 * test le #1
46 DOIF 1 <= 1
47  DBG: OUTS "ok 7"
48 ELSE
49  DBG: OUTS "not ok 7"
50 ENDI
52 * test le #2
53 DOIF 1 <= 2
54  DBG: OUTS "ok 8"
55 ELSE
56  DBG: OUTS "not ok 8"
57 ENDI
59 * test le #3
60 DOIF 2 <= 1
61  DBG: OUTS "not ok 9"
62 ELSE
63  DBG: OUTS "ok 9"
64 ENDI
66 * test ge #1
67 DOIF 1 >= 1
68  DBG: OUTS "ok 10"
69 ELSE
70  DBG: OUTS "not ok 10"
71 ENDI
73 * test ge #2
74 DOIF 1 >= 2
75  DBG: OUTS "not ok 11"
76 ELSE
77  DBG: OUTS "ok 11"
78 ENDI
80 * test ge #3
81 DOIF 2 >= 1
82  DBG: OUTS "ok 12"
83 ELSE
84  DBG: OUTS "not ok 12"
85 ENDI
87 * test AND
88 DOIF 1 eq 1 AND 2 eq 2
89  DBG: OUTS "ok 13"
90 ELSE
91  DBG: OUTS "not ok 13"
92 ENDI
94 * test OR #1
95 DOIF 1 eq 1 OR 1 eq 2
96  DBG: OUTS "ok 14"
97 ELSE
98  DBG: OUTS "not ok 14"
99 ENDI
101 * test OR #2
102 DOIF 1 eq 2 OR 2 eq 3
103  DBG: OUTS "not ok 15"
104 ELSE
105  DBG: OUTS "ok 15"
106 ENDI
108 * test embedded if blocks
109 DOIF 1 eq 2
110  DOIF 1 eq 1
111   DBG: OUTS "not ok 16"
112  ELSE
113   DBG: OUTS "not ok 16"
114  ENDI
115 ELSE
116  DOIF 1 eq 1
117   DBG: OUTS "ok 16"
118  ELSE
119   DBG: OUTS "not ok 16"
120  ENDI
121 ENDI
123 * test ELIF
124 DOIF 1 eq 2
125  DBG: OUTS "not ok 17"
126 ELIF 1 eq 1
127  DBG: OUTS "ok 17"
128 ELSE
129  DBG: OUTS "not ok 17"
130 ENDI
132 * test associativity
133 * (1 == 2 && 2 == 1) || 1 == 1
134 DOIF 1 gt 2 and 2 lt 1 or 1 eq 1
135  DBG: OUTS "ok 18"
136 ELSE
137  DBG: OUTS "not ok 18"
138 ENDI
140 * test AND and OR, ie, ordering
141 DOIF 1 ne 1 and 2 eq 3 and 4 eq 5 or 1 eq 1
142  DBG: OUTS "ok 19"
143 ELSE
144  DBG: OUTS "not ok 19"
145 ENDI
147 DOIF "a" lt "b"
148  DBG: OUTS "ok 20"
149 ELSE
150  DBG: OUTS "not ok 20"
151 ENDI
153 SETV VA00 MOWS
155 * test AND #2
156 DOIF 1 eq 2 AND 2 eq 2
157  DBG: OUTS "not ok 21"
158 ELSE
159  DBG: OUTS "ok 21"
160 ENDI
162 *test chained elifs
163 DOIF 1 eq 2
164         DBG: OUTS "not ok 22"
165 ELIF 1 eq 3
166         DBG: OUTS "not ok 22"
167 ELIF 2 eq 3
168         DBG: OUTS "not ok 22"
169 ELSE
170         DBG: OUTS "ok 22"
171 ENDI
173 * test more chained elifs, with nesting
174 DOIF 1 eq 1
175         SETV VA00 0
176         DOIF 3 eq 1
177                 DBG: OUTS "not ok 23"
178         ELIF 4 eq 4
179                 SETV VA00 3
180         ENDI
181 ELSE
182         DBG: OUTS "not ok 23"
183 ENDI
184 DOIF VA00 eq 3
185         DBG: OUTS "ok 23"
186 ENDI
188 * test that only one elif branch is evaluated
189 SETV VA00 0
190 DOIF 1 eq 2
191         DBG: OUTS "not ok 24"
192 ELIF 1 eq 1
193         SETV VA00 1
194 ELIF 2 eq 2
195         SETV VA00 2
196 ENDI
197 DOIF VA00 eq 2 or VA00 eq 0
198         DBG: OUTS "not ok 24"
199 ELSE
200         DBG: OUTS "ok 24"
201 ENDI