* Bug 16592 fixed: | and & between complex and boolean or []
[scilab.git] / scilab / modules / ast / tests / unit_tests / or.tst
1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS
4 // Copyright (C) 2020 - Samuel GOUGEON
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // ============================================================================
8 //
9 // <-- CLI SHELL MODE -->
10 // <-- NO CHECK REF -->
11
12 empty = [];
13 r = 2;
14 R = [1,2;3,4];
15 R3(:,:,1) = R;
16 R3(:,:,2) = R';
17 c = 1 + 2*%i;
18 C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
19 C3(:,:,1) = C;
20 C3(:,:,2) = C';
21 e = eye();
22 ec = (5+%i) * eye();
23 p = 1 + %s - %s**2;
24 pc = 1 + %s - %s**2 + ( 2 - 3 * %s + 4 * %s**2 ) * %i;
25 P = [2*p, -3*p;4*p,-5*p];
26 PC = [2*pc, -3*pc;4*pc,-5*pc];
27 SP = sparse([1,2;4,5;3,10],[1,2,3]);
28 SPC = sparse([1,2;4,5;3,10],[1,2,3]) * ( 1 + 4*%i);
29 SPB = sparse([1,2;2,1],[%t;%t],[2,2]);
30
31 i8 = int8(-8);
32 ui8 = uint8(8);
33 I8 = int8([-8 -16 ; -24 -32]);
34 UI8 = uint8([8 16 ; 24 32]);
35
36 I16 = int16([-16 -32 ; -48 -64]);
37 UI16 = uint16([16 32 ; 48 64]);
38 i16 = int16(-16);
39 ui16 = uint16(16);
40
41 i32 = int32(-32);
42 ui32 = uint32(32);
43 I32 = int32([-32 -64 ; -96 -128]);
44 UI32 = uint32([32 64 ; 96 128]);
45
46 str = "string";
47 STR = ["string1" "string2";"string3" "string4"];
48
49 b = %f;
50 B = [%t %f;%f %t];
51
52
53 assert_checkequal(empty | empty, []);
54 assert_checkequal(empty | r, []);
55 assert_checkequal(empty | R, []);
56 assert_checkequal(empty | c, []);
57 assert_checkequal(empty | C, []);
58 assert_checkequal(empty | e, []);
59 assert_checkequal(empty | b, %t);
60 assert_checkequal(empty | B, [%t %t;%t %t]);
61
62 assert_checkequal(r | empty, []);
63 assert_checkequal(r | r, %t);
64 assert_checkequal(r | R, [%t,%t;%t,%t]);
65 assert_checkequal(r | c, %t);
66 assert_checkequal(r | C, [%t,%t;%t,%t]);
67 assert_checkequal(r | e, %t);
68 assert_checkequal(r | b, %t);
69 assert_checkequal(r | B, [%t,%t;%t,%t]);
70
71 assert_checkequal(R | empty, []);
72 assert_checkequal(R | r, [%t,%t;%t,%t]);
73 assert_checkequal(R | R, [%t,%t;%t,%t]);
74 assert_checkequal(R | c, [%t,%t;%t,%t]);
75 assert_checkequal(R | C, [%t,%t;%t,%t]);
76 assert_checkequal(R | e, [%t,%t;%t,%t]);
77 assert_checkequal(R | b, [%t,%t;%t,%t]);
78 assert_checkequal(R | B, [%t,%t;%t,%t]);
79
80 assert_checkequal(c | empty, []);
81 assert_checkequal(c | r, %t);
82 assert_checkequal(c | R, [%t,%t;%t,%t]);
83 assert_checkequal(c | c, %t);
84 assert_checkequal(c | C, [%t,%t;%t,%t]);
85 assert_checkequal(c | e, %t);
86 assert_checkequal(c | b, %t);
87 assert_checkequal(c | B, [%t,%t;%t,%t]);
88
89 assert_checkequal(C | empty, []);
90 assert_checkequal(C | r, [%t,%t;%t,%t]);
91 assert_checkequal(C | R, [%t,%t;%t,%t]);
92 assert_checkequal(C | c, [%t,%t;%t,%t]);
93 assert_checkequal(C | C, [%t,%t;%t,%t]);
94 assert_checkequal(C | e, [%t,%t;%t,%t]);
95 assert_checkequal(C | b, [%t,%t;%t,%t]);
96 assert_checkequal(C | B, [%t,%t;%t,%t]);
97
98 assert_checkequal(e | empty, []);
99 assert_checkequal(e | r, %t);
100 assert_checkequal(e | R, [%t,%t;%t,%t]);
101 assert_checkequal(e | c, %t);
102 assert_checkequal(e | C, [%t,%t;%t,%t]);
103 assert_checkequal(e | b, %t);
104 assert_checkequal(e | B, [%t,%t;%t,%t]);
105
106 assert_checkequal(b | empty, %t);
107 assert_checkequal(b | r, %t);
108 assert_checkequal(b | R, [%t,%t;%t,%t]);
109 assert_checkequal(b | c, %t);
110 assert_checkequal(b | C, [%t,%t;%t,%t]);
111 assert_checkequal(b | e, %t);
112 assert_checkequal(b | b, %f);
113 assert_checkequal(b | B, [%t,%f;%f,%t]);
114 assert_checkequal(b | SPB, sparse([1,2;2,1],[%t;%t],[2,2]));
115
116 assert_checkequal(B | empty, [%t,%t;%t,%t]);
117 assert_checkequal(B | r, [%t,%t;%t,%t]);
118 assert_checkequal(B | R, [%t,%t;%t,%t]);
119 assert_checkequal(B | c, [%t,%t;%t,%t]);
120 assert_checkequal(B | C, [%t,%t;%t,%t]);
121 assert_checkequal(B | e, [%t,%t;%t,%t]);
122 assert_checkequal(B | b, [%t,%f;%f,%t]);
123 assert_checkequal(B | B, [%t,%f;%f,%t]);
124 assert_checkequal(B | SPB, sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,2]));
125
126 assert_checkequal(SPB | b, sparse([1,2;2,1],[%t;%t],[2,2]));
127 assert_checkequal(SPB | B, sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,2]));
128 assert_checkequal(SPB | SPB, sparse([1,2;2,1],[%t;%t],[2,2]));
129