bug 14671: || misworks when LHS is %f or zeros. ...
[scilab.git] / scilab / modules / ast / tests / nonreg_tests / bug_14761.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2017 - Scilab Enterprises - Antoine ELIAS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 // <-- NO CHECK REF -->
10 //
11 // <-- Non-regression test for bug 14761 -->
12 //
13 // <-- Bugzilla URL -->
14 // http://bugzilla.scilab.org/show_bug.cgi?id=14761
15 //
16 // <-- Short Description -->
17 //
18 // || misworks when LHS is %f or zeros. && misworks when LHS is %t or non-zeros
19
20 m = [4 9 8;1 5 3];
21 z = zeros(2,3);
22
23 assert_checkequal(m || %f, and(m));
24 assert_checkequal(m || %t, %t);
25 assert_checkequal(%f || m, and(m));
26 assert_checkequal(%t || m, %t);
27
28 assert_checkequal(z || %f, and(z));
29 assert_checkequal(z || %t, %t);
30 assert_checkequal(%f || z, and(z));
31 assert_checkequal(%t || z, %t);
32
33 assert_checkequal(m && %f, %f);
34 assert_checkequal(m && %t, and(m));
35 assert_checkequal(%f && m, %f);
36 assert_checkequal(%t && m, and(m));
37
38 assert_checkequal(z && %f, %f);
39 assert_checkequal(z && %t, and(z));
40 assert_checkequal(%f && z, %f);
41 assert_checkequal(%t && z, and(z));
42
43 //introduce a 0
44 m(2,2)=0;
45
46 assert_checkequal(m || %f, and(m));
47 assert_checkequal(m || %t, %t);
48 assert_checkequal(%f || m, and(m));
49 assert_checkequal(%t || m, %t);
50
51 assert_checkequal(z || %f, and(z));
52 assert_checkequal(z || %t, %t);
53 assert_checkequal(%f || z, and(z));
54 assert_checkequal(%t || z, %t);
55
56 assert_checkequal(m && %f, %f);
57 assert_checkequal(m && %t, and(m));
58 assert_checkequal(%f && m, %f);
59 assert_checkequal(%t && m, and(m));
60
61 assert_checkequal(z && %f, %f);
62 assert_checkequal(z && %t, and(z));
63 assert_checkequal(%f && z, %f);
64 assert_checkequal(%t && z, and(z));