fix core tests
[scilab.git] / scilab / modules / core / tests / unit_tests / shortcutBinaryOperator.dia.ref
1 //<-- CLI SHELL MODE -->
2 // =============================================================================
3 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 // Copyright (C) 2010 - DIGITEO - Bruno JOFRET
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8 // | and & operators are shortcuted within if test
9 // this test will check this behaviour based on some
10 // printed messages (and not on standard test_run/bugme process).
11 function r = T()
12   disp("Call return [%T] ...");
13   r = %t;
14 endfunction
15 function r = F()
16   disp("Call return [%F] ...");
17   r = %f;
18 endfunction
19 function r = TT()
20     disp("Call return [%T %T] ...");
21   r = [%t %t];
22 endfunction
23 function r = TF()
24     disp("Call return [%T %F] ...");
25   r = [%t %f];
26 endfunction
27 function r = FF()
28     disp("Call return [%F %F] ...");
29   r = [%f %f];
30 endfunction
31 //
32 // ** OR
33 //
34 // normal
35 T() | F()
36   "Call return [%T] ..."
37   "Call return [%F] ..."
38  ans  =
39   T
40 T() | T()
41   "Call return [%T] ..."
42   "Call return [%T] ..."
43  ans  =
44   T
45 F() | T()
46   "Call return [%F] ..."
47   "Call return [%T] ..."
48  ans  =
49   T
50 F() | F()
51   "Call return [%F] ..."
52   "Call return [%F] ..."
53  ans  =
54   F
55 TT() | TT()
56   "Call return [%T %T] ..."
57   "Call return [%T %T] ..."
58  ans  =
59   T T
60 TT() | TF()
61   "Call return [%T %T] ..."
62   "Call return [%T %F] ..."
63  ans  =
64   T T
65 TT() | FF()
66   "Call return [%T %T] ..."
67   "Call return [%F %F] ..."
68  ans  =
69   T T
70 TF() | TT()
71   "Call return [%T %F] ..."
72   "Call return [%T %T] ..."
73  ans  =
74   T T
75 TF() | TF()
76   "Call return [%T %F] ..."
77   "Call return [%T %F] ..."
78  ans  =
79   T F
80 TF() | FF()
81   "Call return [%T %F] ..."
82   "Call return [%F %F] ..."
83  ans  =
84   T F
85 FF() | TT()
86   "Call return [%F %F] ..."
87   "Call return [%T %T] ..."
88  ans  =
89   T T
90 FF() | TF()
91   "Call return [%F %F] ..."
92   "Call return [%T %F] ..."
93  ans  =
94   T F
95 FF() | FF()
96   "Call return [%F %F] ..."
97   "Call return [%F %F] ..."
98  ans  =
99   F F
100 // Shortcuted.
101 if T() | F() then disp("Success"); else disp("Failed"); end
102   "Call return [%T] ..."
103   "Success"
104 if T() | T() then disp("Success"); else disp("Failed"); end
105   "Call return [%T] ..."
106   "Success"
107 // Double evaluation.
108 if F() | T() then disp("Success"); else disp("Failed"); end
109   "Call return [%F] ..."
110   "Call return [%T] ..."
111   "Success"
112 if F() | F() then disp("Failed"); else disp("Success"); end
113   "Call return [%F] ..."
114   "Call return [%F] ..."
115   "Success"
116 //Shortcuted.
117 if TT() | TT() then disp("Success"); else disp("Failed"); end
118   "Call return [%T %T] ..."
119   "Success"
120 if TT() | TF() then disp("Success"); else disp("Failed"); end
121   "Call return [%T %T] ..."
122   "Success"
123 if TT() | FF() then disp("Success"); else disp("Failed"); end
124   "Call return [%T %T] ..."
125   "Success"
126 // Double evaluation.
127 if TF() | TT() then disp("Success"); else disp("Failed"); end
128   "Call return [%T %F] ..."
129   "Call return [%T %T] ..."
130   "Success"
131 if TF() | TF() then disp("Failed"); else disp("Success"); end
132   "Call return [%T %F] ..."
133   "Call return [%T %F] ..."
134   "Success"
135 if TF() | FF() then disp("Failed"); else disp("Success"); end
136   "Call return [%T %F] ..."
137   "Call return [%F %F] ..."
138   "Success"
139 if FF() | TT() then disp("Success"); else disp("Failed"); end
140   "Call return [%F %F] ..."
141   "Call return [%T %T] ..."
142   "Success"
143 if FF() | TF() then disp("Failed"); else disp("Success"); end
144   "Call return [%F %F] ..."
145   "Call return [%T %F] ..."
146   "Success"
147 if FF() | FF() then disp("Failed"); else disp("Success"); end
148   "Call return [%F %F] ..."
149   "Call return [%F %F] ..."
150   "Success"
151 //
152 // ** AND
153 //
154 // normal
155 T() & F()
156   "Call return [%T] ..."
157   "Call return [%F] ..."
158  ans  =
159   F
160 T() & T()
161   "Call return [%T] ..."
162   "Call return [%T] ..."
163  ans  =
164   T
165 F() & T()
166   "Call return [%F] ..."
167   "Call return [%T] ..."
168  ans  =
169   F
170 F() & F()
171   "Call return [%F] ..."
172   "Call return [%F] ..."
173  ans  =
174   F
175 TT() & TT()
176   "Call return [%T %T] ..."
177   "Call return [%T %T] ..."
178  ans  =
179   T T
180 TT() & TF()
181   "Call return [%T %T] ..."
182   "Call return [%T %F] ..."
183  ans  =
184   T F
185 TT() & FF()
186   "Call return [%T %T] ..."
187   "Call return [%F %F] ..."
188  ans  =
189   F F
190 TF() & TT()
191   "Call return [%T %F] ..."
192   "Call return [%T %T] ..."
193  ans  =
194   T F
195 TF() & TF()
196   "Call return [%T %F] ..."
197   "Call return [%T %F] ..."
198  ans  =
199   T F
200 TF() & FF()
201   "Call return [%T %F] ..."
202   "Call return [%F %F] ..."
203  ans  =
204   F F
205 FF() & TT()
206   "Call return [%F %F] ..."
207   "Call return [%T %T] ..."
208  ans  =
209   F F
210 FF() & TF()
211   "Call return [%F %F] ..."
212   "Call return [%T %F] ..."
213  ans  =
214   F F
215 FF() & FF()
216   "Call return [%F %F] ..."
217   "Call return [%F %F] ..."
218  ans  =
219   F F
220 // Shortcuted.
221 if F() & T() then disp("Failed"); else disp("Success"); end
222   "Call return [%F] ..."
223   "Success"
224 if F() & F() then disp("Failed"); else disp("Success"); end
225   "Call return [%F] ..."
226   "Success"
227 // Double evaluation.
228 if T() & F() then disp("Failed"); else disp("Success"); end
229   "Call return [%T] ..."
230   "Call return [%F] ..."
231   "Success"
232 if T() & T() then disp("Success"); else disp("Failed"); end
233   "Call return [%T] ..."
234   "Call return [%T] ..."
235   "Success"
236 // Shortcuted.
237 if FF() & TT() then disp("Failed"); else disp("Success"); end
238   "Call return [%F %F] ..."
239   "Success"
240 if FF() & TF() then disp("Failed"); else disp("Success"); end
241   "Call return [%F %F] ..."
242   "Success"
243 if FF() & FF() then disp("Failed"); else disp("Success"); end
244   "Call return [%F %F] ..."
245   "Success"
246 if TF() & TT() then disp("Failed"); else disp("Success"); end
247   "Call return [%T %F] ..."
248   "Success"
249 if TF() & TF() then disp("Failed"); else disp("Success"); end
250   "Call return [%T %F] ..."
251   "Success"
252 if TF() & FF() then disp("Failed"); else disp("Success"); end
253   "Call return [%T %F] ..."
254   "Success"
255 // Double evaluation.
256 if TT() & TT() then disp("Success"); else disp("Failed"); end
257   "Call return [%T %T] ..."
258   "Call return [%T %T] ..."
259   "Success"
260 if TT() & TF() then disp("Failed"); else disp("Success"); end
261   "Call return [%T %T] ..."
262   "Call return [%T %F] ..."
263   "Success"
264 if TT() & FF() then disp("Failed"); else disp("Success"); end
265   "Call return [%T %T] ..."
266   "Call return [%F %F] ..."
267   "Success"
268 clear T;
269 clear F;
270 clear TT;
271 clear TF;
272 clear FF;