restore tests from operations module
[scilab.git] / scilab / modules / ast / tests / unit_tests / or_and.dia.ref
1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - DIGITEO - Antoine ELIAS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // ============================================================================
7 //
8 // <-- JVM NOT MANDATORY -->
9 false = %f;
10 true = %t;
11 //scalar AND scalar in operation
12 assert_checkfalse(false & false);
13 assert_checkfalse(false & true);
14 assert_checkfalse(true & false);
15 assert_checktrue(true & true);
16 //scalar OR scalar in operation
17 assert_checkfalse(false | false);
18 assert_checktrue(false | true);
19 assert_checktrue(true | false);
20 assert_checktrue(true | true);
21 //scalar AND scalar in condition
22 if (false & false) <> false then bugmes();quit;end
23 if (false & true) <> false then bugmes();quit;end
24 if (true & false) <> false then bugmes();quit;end
25 if (true & true) <> true then bugmes();quit;end
26 //scalar OR scalar in condition
27 if (false | false) <> false then bugmes();quit;end
28 if (false | true) <> true then bugmes();quit;end
29 if (true | false) <> true then bugmes();quit;end
30 if (true | true) <> true then bugmes();quit;end
31 MF = [false,false;false,false];
32 MT = [true,true;true,true];
33 //scalar AND matrix in operation
34 assert_checkfalse(false & MF);
35 assert_checkfalse(false & MT);
36 assert_checkfalse(true & MF);
37 assert_checktrue(true & MT);
38 //scalar OR matrix in operation
39 assert_checkfalse(false | MF);
40 assert_checktrue(false | MT);
41 assert_checktrue(true | MF);
42 assert_checktrue(true | MT);
43 //scalar AND matrix in condition
44 if (false & MF) <> false then bugmes();quit;end
45 if (false & MT) <> false then bugmes();quit;end
46 if (true & MF) <> false then bugmes();quit;end
47 if (true & MT) <> true then bugmes();quit;end
48 //scalar OR matrix in condition
49 if (false | MF) <> false then bugmes();quit;end
50 if (false | MT) <> true then bugmes();quit;end
51 if (true | MF) <> true then bugmes();quit;end
52 if (true | MT) <> true then bugmes();quit;end
53 //matrix AND scalar in operation
54 assert_checkfalse(MF & false);
55 assert_checkfalse(MF & true);
56 assert_checkfalse(MT & false);
57 assert_checktrue(MT & true);
58 //matrix OR scalar in operation
59 assert_checkfalse(MF | false);
60 assert_checktrue(MF | true);
61 assert_checktrue(MT | false);
62 assert_checktrue(MT | true);
63 //matrix AND scalar in condition
64 if (MF & false) <> false then bugmes();quit;end
65 if (MF & true) <> false then bugmes();quit;end
66 if (MT & false) <> false then bugmes();quit;end
67 if (MT & true) <> true then bugmes();quit;end
68 //matrix OR scalar in condition
69 if (MF | false) <> false then bugmes();quit;end
70 if (MF | true) <> true then bugmes();quit;end
71 if (MT | false) <> true then bugmes();quit;end
72 if (MT | true) <> true then bugmes();quit;end
73 //matrix AND matrix in operation
74 assert_checkfalse(MF & MF);
75 assert_checkfalse(MF & MT);
76 assert_checkfalse(MT & MF);
77 assert_checktrue(MT & MT);
78 //matrix OR matrix in operation
79 assert_checkfalse(MF | MF);
80 assert_checktrue(MF | MT);
81 assert_checktrue(MT | MF);
82 assert_checktrue(MT | MT);
83 //matrix AND matrix in condition
84 if (MF & MF) <> MF then bugmes();quit;end
85 if (MF & MT) <> MF then bugmes();quit;end
86 if (MT & MF) <> MF then bugmes();quit;end
87 if (MT & MT) <> MT then bugmes();quit;end
88 //matrix OR matrix in condition
89 if (MF | MF) <> MF then bugmes();quit;end
90 if (MF | MT) <> MT then bugmes();quit;end
91 if (MT | MF) <> MT then bugmes();quit;end
92 if (MT | MT) <> MT then bugmes();quit;end
93 //int | int
94 b0 = int8(0);
95 b1 = int8(1);
96 b2 = int8(2);
97 b3 = int8(4);
98 b4 = int8(8);
99 b12 = int8(3);
100 b13 = int8(5);
101 b14 = int8(9);
102 b23 = int8(6);
103 b24 = int8(10);
104 b34 = int8(12);
105 b123 = int8(7);
106 b124 = int8(11);
107 b134 = int8(13);
108 b234 = int8(14);
109 b1234 = int8(15);
110 //scalar OR scalar in operation
111 assert_checktrue((b0 | b0) == b0);
112 assert_checktrue((b0 | b1) == b1);
113 assert_checktrue((b0 | b2) == b2);
114 assert_checktrue((b0 | b3) == b3);
115 assert_checktrue((b0 | b4) == b4);
116 assert_checktrue((b0 | b12) == b12);
117 assert_checktrue((b0 | b13) == b13);
118 assert_checktrue((b0 | b14) == b14);
119 assert_checktrue((b0 | b23) == b23);
120 assert_checktrue((b0 | b24) == b24);
121 assert_checktrue((b0 | b34) == b34);
122 assert_checktrue((b0 | b123) == b123);
123 assert_checktrue((b0 | b134) == b134);
124 assert_checktrue((b0 | b234) == b234);
125 assert_checktrue((b0 | b1234) == b1234);
126 assert_checktrue((b1 | b1) == b1);
127 assert_checktrue((b1 | b2) == b12);
128 assert_checktrue((b1 | b3) == b13);
129 assert_checktrue((b1 | b4) == b14);
130 assert_checktrue((b1 | b12) == b12);
131 assert_checktrue((b1 | b13) == b13);
132 assert_checktrue((b1 | b14) == b14);
133 assert_checktrue((b1 | b23) == b123);
134 assert_checktrue((b1 | b24) == b124);
135 assert_checktrue((b1 | b34) == b134);
136 assert_checktrue((b1 | b123) == b123);
137 assert_checktrue((b1 | b134) == b134);
138 assert_checktrue((b1 | b234) == b1234);
139 assert_checktrue((b1 | b1234) == b1234);
140 assert_checktrue((b2 | b2) == b2);
141 assert_checktrue((b2 | b3) == b23);
142 assert_checktrue((b2 | b4) == b24);
143 assert_checktrue((b2 | b12) == b12);
144 assert_checktrue((b2 | b13) == b123);
145 assert_checktrue((b2 | b14) == b124);
146 assert_checktrue((b2 | b23) == b23);
147 assert_checktrue((b2 | b24) == b24);
148 assert_checktrue((b2 | b34) == b234);
149 assert_checktrue((b2 | b123) == b123);
150 assert_checktrue((b2 | b134) == b1234);
151 assert_checktrue((b2 | b234) == b234);
152 assert_checktrue((b2 | b1234) == b1234);
153 assert_checktrue((b3 | b3) == b3);
154 assert_checktrue((b3 | b4) == b34);
155 assert_checktrue((b3 | b12) == b123);
156 assert_checktrue((b3 | b13) == b13);
157 assert_checktrue((b3 | b14) == b134);
158 assert_checktrue((b3 | b23) == b23);
159 assert_checktrue((b3 | b24) == b234);
160 assert_checktrue((b3 | b34) == b34);
161 assert_checktrue((b3 | b123) == b123);
162 assert_checktrue((b3 | b134) == b134);
163 assert_checktrue((b3 | b234) == b234);
164 assert_checktrue((b3 | b1234) == b1234);
165 assert_checktrue((b4 | b4) == b4);
166 assert_checktrue((b4 | b12) == b124);
167 assert_checktrue((b4 | b13) == b134);
168 assert_checktrue((b4 | b14) == b14);
169 assert_checktrue((b4 | b23) == b234);
170 assert_checktrue((b4 | b24) == b24);
171 assert_checktrue((b4 | b34) == b34);
172 assert_checktrue((b4 | b123) == b1234);
173 assert_checktrue((b4 | b134) == b134);
174 assert_checktrue((b4 | b234) == b234);
175 assert_checktrue((b4 | b1234) == b1234);
176 assert_checktrue((b12 | b12) == b12);
177 assert_checktrue((b12 | b13) == b123);
178 assert_checktrue((b12 | b14) == b124);
179 assert_checktrue((b12 | b23) == b123);
180 assert_checktrue((b12 | b24) == b124);
181 assert_checktrue((b12 | b34) == b1234);
182 assert_checktrue((b12 | b123) == b123);
183 assert_checktrue((b12 | b134) == b1234);
184 assert_checktrue((b12 | b234) == b1234);
185 assert_checktrue((b12 | b1234) == b1234);
186 assert_checktrue((b13 | b13) == b13);
187 assert_checktrue((b13 | b14) == b134);
188 assert_checktrue((b13 | b23) == b123);
189 assert_checktrue((b13 | b24) == b1234);
190 assert_checktrue((b13 | b34) == b134);
191 assert_checktrue((b13 | b123) == b123);
192 assert_checktrue((b13 | b134) == b134);
193 assert_checktrue((b13 | b234) == b1234);
194 assert_checktrue((b13 | b1234) == b1234);
195 assert_checktrue((b14 | b14) == b14);
196 assert_checktrue((b14 | b23) == b1234);
197 assert_checktrue((b14 | b24) == b124);
198 assert_checktrue((b14 | b34) == b134);
199 assert_checktrue((b14 | b123) == b1234);
200 assert_checktrue((b14 | b134) == b134);
201 assert_checktrue((b14 | b234) == b1234);
202 assert_checktrue((b14 | b1234) == b1234);
203 assert_checktrue((b23 | b23) == b23);
204 assert_checktrue((b23 | b24) == b234);
205 assert_checktrue((b23 | b34) == b234);
206 assert_checktrue((b23 | b123) == b123);
207 assert_checktrue((b23 | b134) == b1234);
208 assert_checktrue((b23 | b234) == b234);
209 assert_checktrue((b23 | b1234) == b1234);
210 assert_checktrue((b24 | b24) == b24);
211 assert_checktrue((b24 | b34) == b234);
212 assert_checktrue((b24 | b123) == b1234);
213 assert_checktrue((b24 | b134) == b1234);
214 assert_checktrue((b24 | b234) == b234);
215 assert_checktrue((b24 | b1234) == b1234);
216 assert_checktrue((b34 | b34) == b34);
217 assert_checktrue((b34 | b123) == b1234);
218 assert_checktrue((b34 | b134) == b134);
219 assert_checktrue((b34 | b234) == b234);
220 assert_checktrue((b34 | b1234) == b1234);
221 assert_checktrue((b123 | b123) == b123);
222 assert_checktrue((b123 | b134) == b1234);
223 assert_checktrue((b123 | b234) == b1234);
224 assert_checktrue((b123 | b1234) == b1234);
225 assert_checktrue((b134 | b134) == b134);
226 assert_checktrue((b134 | b234) == b1234);
227 assert_checktrue((b134 | b1234) == b1234);
228 assert_checktrue((b234 | b234) == b234);
229 assert_checktrue((b234 | b1234) == b1234);
230 assert_checktrue((b1234 | b1234) == b1234);
231 //scalar AND scalar in operation
232 assert_checktrue((b0 & b0) == b0);
233 assert_checktrue((b0 & b1) == b0);
234 assert_checktrue((b0 & b2) == b0);
235 assert_checktrue((b0 & b3) == b0);
236 assert_checktrue((b0 & b4) == b0);
237 assert_checktrue((b0 & b12) == b0);
238 assert_checktrue((b0 & b13) == b0);
239 assert_checktrue((b0 & b14) == b0);
240 assert_checktrue((b0 & b23) == b0);
241 assert_checktrue((b0 & b24) == b0);
242 assert_checktrue((b0 & b34) == b0);
243 assert_checktrue((b0 & b123) == b0);
244 assert_checktrue((b0 & b134) == b0);
245 assert_checktrue((b0 & b234) == b0);
246 assert_checktrue((b0 & b1234) == b0);
247 assert_checktrue((b1 & b1) == b1);
248 assert_checktrue((b1 & b2) == b0);
249 assert_checktrue((b1 & b3) == b0);
250 assert_checktrue((b1 & b4) == b0);
251 assert_checktrue((b1 & b12) == b1);
252 assert_checktrue((b1 & b13) == b1);
253 assert_checktrue((b1 & b14) == b1);
254 assert_checktrue((b1 & b23) == b0);
255 assert_checktrue((b1 & b24) == b0);
256 assert_checktrue((b1 & b34) == b0);
257 assert_checktrue((b1 & b123) == b1);
258 assert_checktrue((b1 & b134) == b1);
259 assert_checktrue((b1 & b234) == b0);
260 assert_checktrue((b1 & b1234) == b1);
261 assert_checktrue((b2 & b2) == b2);
262 assert_checktrue((b2 & b3) == b0);
263 assert_checktrue((b2 & b4) == b0);
264 assert_checktrue((b2 & b12) == b2);
265 assert_checktrue((b2 & b13) == b0);
266 assert_checktrue((b2 & b14) == b0);
267 assert_checktrue((b2 & b23) == b2);
268 assert_checktrue((b2 & b24) == b2);
269 assert_checktrue((b2 & b34) == b0);
270 assert_checktrue((b2 & b123) == b2);
271 assert_checktrue((b2 & b134) == b0);
272 assert_checktrue((b2 & b234) == b2);
273 assert_checktrue((b2 & b1234) == b2);
274 assert_checktrue((b3 & b3) == b3);
275 assert_checktrue((b3 & b4) == b0);
276 assert_checktrue((b3 & b12) == b0);
277 assert_checktrue((b3 & b13) == b3);
278 assert_checktrue((b3 & b14) == b0);
279 assert_checktrue((b3 & b23) == b3);
280 assert_checktrue((b3 & b24) == b0);
281 assert_checktrue((b3 & b34) == b3);
282 assert_checktrue((b3 & b123) == b3);
283 assert_checktrue((b3 & b134) == b3);
284 assert_checktrue((b3 & b234) == b3);
285 assert_checktrue((b3 & b1234) == b3);
286 assert_checktrue((b4 & b4) == b4);
287 assert_checktrue((b4 & b12) == b0);
288 assert_checktrue((b4 & b13) == b0);
289 assert_checktrue((b4 & b14) == b4);
290 assert_checktrue((b4 & b23) == b0);
291 assert_checktrue((b4 & b24) == b4);
292 assert_checktrue((b4 & b34) == b4);
293 assert_checktrue((b4 & b123) == b0);
294 assert_checktrue((b4 & b134) == b4);
295 assert_checktrue((b4 & b234) == b4);
296 assert_checktrue((b4 & b1234) == b4);
297 assert_checktrue((b12 & b12) == b12);
298 assert_checktrue((b12 & b13) == b1);
299 assert_checktrue((b12 & b14) == b1);
300 assert_checktrue((b12 & b23) == b2);
301 assert_checktrue((b12 & b24) == b2);
302 assert_checktrue((b12 & b34) == b0);
303 assert_checktrue((b12 & b123) == b12);
304 assert_checktrue((b12 & b134) == b1);
305 assert_checktrue((b12 & b234) == b2);
306 assert_checktrue((b12 & b1234) == b12);
307 assert_checktrue((b13 & b13) == b13);
308 assert_checktrue((b13 & b14) == b1);
309 assert_checktrue((b13 & b23) == b3);
310 assert_checktrue((b13 & b24) == b0);
311 assert_checktrue((b13 & b34) == b3);
312 assert_checktrue((b13 & b123) == b13);
313 assert_checktrue((b13 & b134) == b13);
314 assert_checktrue((b13 & b234) == b3);
315 assert_checktrue((b13 & b1234) == b13);
316 assert_checktrue((b14 & b14) == b14);
317 assert_checktrue((b14 & b23) == b0);
318 assert_checktrue((b14 & b24) == b4);
319 assert_checktrue((b14 & b34) == b4);
320 assert_checktrue((b14 & b123) == b1);
321 assert_checktrue((b14 & b134) == b14);
322 assert_checktrue((b14 & b234) == b4);
323 assert_checktrue((b14 & b1234) == b14);
324 assert_checktrue((b23 & b23) == b23);
325 assert_checktrue((b23 & b24) == b2);
326 assert_checktrue((b23 & b34) == b3);
327 assert_checktrue((b23 & b123) == b23);
328 assert_checktrue((b23 & b134) == b3);
329 assert_checktrue((b23 & b234) == b23);
330 assert_checktrue((b23 & b1234) == b23);
331 assert_checktrue((b24 & b24) == b24);
332 assert_checktrue((b24 & b34) == b4);
333 assert_checktrue((b24 & b123) == b2);
334 assert_checktrue((b24 & b134) == b4);
335 assert_checktrue((b24 & b234) == b24);
336 assert_checktrue((b24 & b1234) == b24);
337 assert_checktrue((b34 & b34) == b34);
338 assert_checktrue((b34 & b123) == b3);
339 assert_checktrue((b34 & b134) == b34);
340 assert_checktrue((b34 & b234) == b34);
341 assert_checktrue((b34 & b1234) == b34);
342 assert_checktrue((b123 & b123) == b123);
343 assert_checktrue((b123 & b134) == b13);
344 assert_checktrue((b123 & b234) == b23);
345 assert_checktrue((b123 & b1234) == b123);
346 assert_checktrue((b134 & b134) == b134);
347 assert_checktrue((b134 & b234) == b34);
348 assert_checktrue((b134 & b1234) == b134);
349 assert_checktrue((b234 & b234) == b234);
350 assert_checktrue((b234 & b1234) == b234);
351 assert_checktrue((b1234 & b1234) == b1234);
352 //scalar OR scalar in condition
353 if b0 | b0 then bugmes();quit;end
354 //others case returns true and we do not want to test with '=='
355 //scalar AND scalar in condition
356 if b0 & b0 then bugmes();quit;end
357 if b0 & b1 then bugmes();quit;end
358 if b0 & b2 then bugmes();quit;end
359 if b0 & b3 then bugmes();quit;end
360 if b0 & b4 then bugmes();quit;end
361 if b0 & b12 then bugmes();quit;end
362 if b0 & b13 then bugmes();quit;end
363 if b0 & b14 then bugmes();quit;end
364 if b0 & b23 then bugmes();quit;end
365 if b0 & b24 then bugmes();quit;end
366 if b0 & b34 then bugmes();quit;end
367 if b0 & b123 then bugmes();quit;end
368 if b0 & b124 then bugmes();quit;end
369 if b0 & b134 then bugmes();quit;end
370 if b0 & b234 then bugmes();quit;end
371 if b0 & b1234 then bugmes();quit;end
372 //others case returns true and we do not want to test with '=='