b808675340387bff7af116f0d07a4e15389130c3
[scilab.git] / scilab / modules / ast / tests / unit_tests / comparisonnonequal.tst
1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2014 - Scilab Enterprises - Sylvain GENIN
4 // Copyright (C) 2021 - Samuel GOUGEON
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // ============================================================================
8 // <-- NO CHECK REF -->
9 // <-- CLI SHELL MODE -->
10
11 s = %s;
12
13 empty = [];
14
15 r = 2;
16 R = [1,2;3,4];
17 R3(:,:,1) = R;
18 R3(:,:,2) = R';
19 c = 1 + 2*%i;
20 C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
21 C3(:,:,1) = C;
22 C3(:,:,2) = C';
23
24 e = eye();
25 ec = (5+%i) * eye();
26
27 p = 1 + %s - %s**2;
28 pc = 1 + %s - %s**2 + ( 2 - 3 * %s + 4 * %s**2 ) * %i;
29 P = [2*p, 2;4*p,-5*p];
30 PC = [2*pc, 2;4*pc,-5*pc];
31
32 SP = sparse([1,2;4,5;3,10],[1,2,3]);
33 SPC = sparse([1,2;4,5;3,10],[1,2,3]) * ( 1 + 4*%i);
34 SPB = sparse([1,2;2,1],[%t;%t],[2,2]);
35 SP1 = sparse([1,1],[10]);
36 SPC1 = sparse([1,1],[1]) * ( 2 + 6*%i);
37
38 i8 = int8(-8);
39 ui8 = uint8(8);
40 I8 = int8([-8 2 ; -24 -32]);
41 UI8 = uint8([8 2 ; 24 32]);
42
43 I16 = int16([-16 2 ; -48 -64]);
44 UI16 = uint16([16 2 ; 48 64]);
45 i16 = int16(-16);
46 ui16 = uint16(16);
47
48 i32 = int32(-32);
49 ui32 = uint32(32);
50 I32 = int32([-32 2 ; -96 -128]);
51 UI32 = uint32([32 2 ; 96 128]);
52
53 str = "string";
54 STR = ["string1" "string2";"string3" "string4"];
55
56 b = %f;
57 B = [%t %f;%f %t];
58
59 assert_checkequal(empty <> empty, %f);
60 assert_checkequal(empty <> r, %t);
61 assert_checkequal(empty <> c, %t);
62 assert_checkequal(empty <> R, %t);
63 assert_checkequal(empty <> C, %t);
64 assert_checkequal(empty <> e, %t);
65 assert_checkequal(empty <> ec, %t);
66 assert_checkequal(empty <> p, %t);
67 assert_checkequal(empty <> pc, %t);
68 assert_checkequal(empty <> P, %t);
69 assert_checkequal(empty <> PC, %t);
70 assert_checkequal(empty <> SP, %t);
71 assert_checkequal(empty <> SPC, %t);
72 assert_checkequal(empty <> SP1, %t);
73 assert_checkequal(empty <> SPC1, %t);
74 assert_checkequal(empty <> i8, %t);
75 assert_checkequal(empty <> I8, %t);
76 assert_checkequal(empty <> ui8, %t);
77 assert_checkequal(empty <> UI8, %t);
78 assert_checkequal(empty <> i16, %t);
79 assert_checkequal(empty <> I16, %t);
80 assert_checkequal(empty <> ui16, %t);
81 assert_checkequal(empty <> UI16, %t);
82 assert_checkequal(empty <> i32, %t);
83 assert_checkequal(empty <> I32, %t);
84 assert_checkequal(empty <> ui32, %t);
85 assert_checkequal(empty <> UI32, %t);
86 assert_checkequal(empty <> str, %t);
87 assert_checkequal(empty <> STR, %t);
88 assert_checkequal(empty <> b, %t);
89 assert_checkequal(empty <> B, %t);
90 assert_checkequal(empty <> SPB, %t);
91
92 assert_checkequal(r <> empty, %t);
93 assert_checkequal(r <> r, %f);
94 assert_checkequal(r <> c, %t);
95 assert_checkequal(r <> R, [%t,%f;%t,%t]);
96 assert_checkequal(r <> C, [%t,%t;%t,%t]);
97 assert_checkequal(r <> e, %t);
98 assert_checkequal(r <> ec, %t);
99 assert_checkequal(r <> p, %t);
100 assert_checkequal(r <> pc, %t);
101 assert_checkequal(r <> P, [%t,%f;%t,%t]);
102 assert_checkequal(r <> PC, [%t,%f;%t,%t]);
103 assert_checkequal(r <> SP, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
104 assert_checkequal(r <> SPC, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
105 assert_checkequal(r <> SP1, sparse([1,1],%t,[1,1]));
106 assert_checkequal(r <> SPC1, sparse([1,1],%t,[1,1]));
107 assert_checkequal(r <> i8, %t);
108 assert_checkequal(r <> I8, [%t,%f;%t,%t]);
109 assert_checkequal(r <> ui8, %t);
110 assert_checkequal(r <> UI8, [%t,%f;%t,%t]);
111 assert_checkequal(r <> i16, %t);
112 assert_checkequal(r <> I16, [%t,%f;%t,%t]);
113 assert_checkequal(r <> ui16, %t);
114 assert_checkequal(r <> UI16, [%t,%f;%t,%t]);
115 assert_checkequal(r <> i32, %t);
116 assert_checkequal(r <> I32, [%t,%f;%t,%t]);
117 assert_checkequal(r <> ui32, %t);
118 assert_checkequal(r <> UI32, [%t,%f;%t,%t]);
119 assert_checkequal(r <> str, %t);
120 assert_checkequal(r <> STR, %t);
121 assert_checkequal(r <> b, %t);
122 assert_checkequal(r <> B, %t);
123 assert_checkequal(r <> SPB, %t);
124
125 assert_checkequal(c <> empty, %t);
126 assert_checkequal(c <> r, %t);
127 assert_checkequal(c <> c, %f);
128 assert_checkequal(c <> R, [%t,%t;%t,%t]);
129 assert_checkequal(c <> C, [%f,%t;%t,%t]);
130 assert_checkequal(c <> e, %t);
131 assert_checkequal(c <> ec, %t);
132 assert_checkequal(c <> p, %t);
133 assert_checkequal(c <> pc, %t);
134 assert_checkequal(c <> P, [%t,%t;%t,%t]);
135 assert_checkequal(c <> PC, [%t,%t;%t,%t]);
136 assert_checkequal(c <> SP, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
137 assert_checkequal(c <> SPC, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
138 assert_checkequal(c <> SP1, sparse([1,1],%t,[1,1]));
139 assert_checkequal(c <> SPC1, sparse([1,1],%t,[1,1]));
140 assert_checkequal(c <> i8, %t);
141 assert_checkequal(c <> I8, [%t,%t;%t,%t]);
142 assert_checkequal(c <> ui8, %t);
143 assert_checkequal(c <> UI8, [%t,%t;%t,%t]);
144 assert_checkequal(c <> i16, %t);
145 assert_checkequal(c <> I16, [%t,%t;%t,%t]);
146 assert_checkequal(c <> ui16, %t);
147 assert_checkequal(c <> UI16, [%t,%t;%t,%t]);
148 assert_checkequal(c <> i32, %t);
149 assert_checkequal(c <> I32, [%t,%t;%t,%t]);
150 assert_checkequal(c <> ui32, %t);
151 assert_checkequal(c <> UI32, [%t,%t;%t,%t]);
152 assert_checkequal(c <> str, %t);
153 assert_checkequal(c <> STR, %t);
154 assert_checkequal(c <> b, %t);
155 assert_checkequal(c <> B, %t);
156 assert_checkequal(c <> SPB, %t);
157
158 assert_checkequal(R <> empty, %t);
159 assert_checkequal(R <> r, [%t,%f;%t,%t]);
160 assert_checkequal(R <> c, [%t,%t;%t,%t]);
161 assert_checkequal(R <> R, [%f,%f;%f,%f]);
162 assert_checkequal(R <> C, [%t,%t;%t,%t]);
163 assert_checkequal(R <> e, [%f,%t;%t,%t]);
164 assert_checkequal(R <> ec, [%t,%t;%t,%t]);
165 assert_checkequal(R <> p, [%t,%t;%t,%t]);
166 assert_checkequal(R <> pc, [%t,%t;%t,%t]);
167 assert_checkequal(R <> P, [%t,%f;%t,%t]);
168 assert_checkequal(R <> PC, [%t,%f;%t,%t]);
169 assert_checkequal(R <> SP, %t);
170 assert_checkequal(R <> SPC, %t);
171 assert_checkequal(R <> SP1, %t);
172 assert_checkequal(R <> SPC1, %t);
173 assert_checkequal(R <> i8, [%t,%t;%t,%t]);
174 assert_checkequal(R <> I8, [%t,%f;%t,%t]);
175 assert_checkequal(R <> ui8, [%t,%t;%t,%t]);
176 assert_checkequal(R <> UI8, [%t,%f;%t,%t]);
177 assert_checkequal(R <> i16, [%t,%t;%t,%t]);
178 assert_checkequal(R <> I16, [%t,%f;%t,%t]);
179 assert_checkequal(R <> ui16, [%t,%t;%t,%t]);
180 assert_checkequal(R <> UI16, [%t,%f;%t,%t]);
181 assert_checkequal(R <> i32, [%t,%t;%t,%t]);
182 assert_checkequal(R <> I32, [%t,%f;%t,%t]);
183 assert_checkequal(R <> ui32, [%t,%t;%t,%t]);
184 assert_checkequal(R <> UI32, [%t,%f;%t,%t]);
185 assert_checkequal(R <> str, %t);
186 assert_checkequal(R <> STR, %t);
187 assert_checkequal(R <> b, %t);
188 assert_checkequal(R <> B, %t);
189 assert_checkequal(R <> SPB, %t);
190
191 assert_checkequal(C <> empty, %t);
192 assert_checkequal(C <> r, [%t,%t;%t,%t]);
193 assert_checkequal(C <> c, [%f,%t;%t,%t]);
194 assert_checkequal(C <> R, [%t,%t;%t,%t]);
195 assert_checkequal(C <> C, [%f,%f;%f,%f]);
196 assert_checkequal(C <> e, [%t,%t;%t,%t]);
197 assert_checkequal(C <> ec, [%t,%t;%t,%t]);
198 assert_checkequal(C <> p, [%t,%t;%t,%t]);
199 assert_checkequal(C <> pc, [%t,%t;%t,%t]);
200 assert_checkequal(C <> P, [%t,%t;%t,%t]);
201 assert_checkequal(C <> PC, [%t,%t;%t,%t]);
202 assert_checkequal(C <> SP, %t);
203 assert_checkequal(C <> SPC, %t);
204 assert_checkequal(C <> SP1, %t);
205 assert_checkequal(C <> SPC1, %t);
206 assert_checkequal(C <> i8, [%t,%t;%t,%t]);
207 assert_checkequal(C <> I8, [%t,%t;%t,%t]);
208 assert_checkequal(C <> ui8, [%t,%t;%t,%t]);
209 assert_checkequal(C <> UI8, [%t,%t;%t,%t]);
210 assert_checkequal(C <> i16, [%t,%t;%t,%t]);
211 assert_checkequal(C <> I16, [%t,%t;%t,%t]);
212 assert_checkequal(C <> ui16, [%t,%t;%t,%t]);
213 assert_checkequal(C <> UI16, [%t,%t;%t,%t]);
214 assert_checkequal(C <> i32, [%t,%t;%t,%t]);
215 assert_checkequal(C <> I32, [%t,%t;%t,%t]);
216 assert_checkequal(C <> ui32, [%t,%t;%t,%t]);
217 assert_checkequal(C <> UI32, [%t,%t;%t,%t]);
218 assert_checkequal(C <> str, %t);
219 assert_checkequal(C <> STR, %t);
220 assert_checkequal(C <> b, %t);
221 assert_checkequal(C <> B, %t);
222 assert_checkequal(C <> SPB, %t);
223
224 assert_checkequal(e <> empty, %t);
225 assert_checkequal(e <> r, %t);
226 assert_checkequal(e <> c, %t);
227 assert_checkequal(e <> R, [%f,%t;%t,%t]);
228 assert_checkequal(e <> C, [%t,%t;%t,%t]);
229 assert_checkequal(e <> e, %f);
230 assert_checkequal(e <> ec, %t);
231 assert_checkequal(e <> p, %t);
232 assert_checkequal(e <> pc, %t);
233 assert_checkequal(e <> P, [%t,%t;%t,%t]);
234 assert_checkequal(e <> PC, [%t,%t;%t,%t]);
235 assert_checkequal(e <> SP, %t);
236 assert_checkequal(e <> SPC, %t);
237 assert_checkequal(e <> SP1, %t);
238 assert_checkequal(e <> SPC1, %t);
239 assert_checkequal(e <> i8, %t);
240 assert_checkequal(e <> I8, [%t,%t;%t,%t]);
241 assert_checkequal(e <> ui8, %t);
242 assert_checkequal(e <> UI8, [%t,%t;%t,%t]);
243 assert_checkequal(e <> i16, %t);
244 assert_checkequal(e <> I16, [%t,%t;%t,%t]);
245 assert_checkequal(e <> ui16, %t);
246 assert_checkequal(e <> UI16, [%t,%t;%t,%t]);
247 assert_checkequal(e <> i32, %t);
248 assert_checkequal(e <> I32, [%t,%t;%t,%t]);
249 assert_checkequal(e <> ui32, %t);
250 assert_checkequal(e <> UI32, [%t,%t;%t,%t]);
251 assert_checkequal(e <> str, %t);
252 assert_checkequal(e <> STR, %t);
253 assert_checkequal(e <> b, %t);
254 assert_checkequal(e <> B, %t);
255 assert_checkequal(e <> SPB, %t);
256
257 assert_checkequal(ec <> empty, %t);
258 assert_checkequal(ec <> r, %t);
259 assert_checkequal(ec <> c, %t);
260 assert_checkequal(ec <> R, [%t,%t;%t,%t]);
261 assert_checkequal(ec <> C, [%t,%t;%t,%t]);
262 assert_checkequal(ec <> e, %t);
263 assert_checkequal(ec <> ec, %f);
264 assert_checkequal(ec <> p, %t);
265 assert_checkequal(ec <> pc, %t);
266 assert_checkequal(ec <> P, [%t,%t;%t,%t]);
267 assert_checkequal(ec <> PC, [%t,%t;%t,%t]);
268 assert_checkequal(ec <> SP, %t);
269 assert_checkequal(ec <> SPC, %t);
270 assert_checkequal(ec <> SP1, %t);
271 assert_checkequal(ec <> SPC1, %t);
272 assert_checkequal(ec <> i8, %t);
273 assert_checkequal(ec <> I8, [%t,%t;%t,%t]);
274 assert_checkequal(ec <> ui8, %t);
275 assert_checkequal(ec <> UI8, [%t,%t;%t,%t]);
276 assert_checkequal(ec <> i16, %t);
277 assert_checkequal(ec <> I16, [%t,%t;%t,%t]);
278 assert_checkequal(ec <> ui16, %t);
279 assert_checkequal(ec <> UI16, [%t,%t;%t,%t]);
280 assert_checkequal(ec <> i32, %t);
281 assert_checkequal(ec <> I32, [%t,%t;%t,%t]);
282 assert_checkequal(ec <> ui32, %t);
283 assert_checkequal(ec <> UI32, [%t,%t;%t,%t]);
284 assert_checkequal(ec <> str, %t);
285 assert_checkequal(ec <> STR, %t);
286 assert_checkequal(ec <> b, %t);
287 assert_checkequal(ec <> B, %t);
288 assert_checkequal(ec <> SPB, %t);
289
290 assert_checkequal(p <> empty, %t);
291 assert_checkequal(p <> r, %t);
292 assert_checkequal(p <> c, %t);
293 assert_checkequal(p <> R, [%t,%t;%t,%t]);
294 assert_checkequal(p <> C, [%t,%t;%t,%t]);
295 assert_checkequal(p <> e, %t);
296 assert_checkequal(p <> ec, %t);
297 assert_checkequal(p <> p, %f);
298 assert_checkequal(p <> pc, %t);
299 assert_checkequal(p <> P, [%t,%t;%t,%t]);
300 assert_checkequal(p <> PC, [%t,%t;%t,%t]);
301 assert_checkequal(p <> i8, %t);
302 assert_checkequal(p <> I8, [%t,%t;%t,%t]);
303 assert_checkequal(p <> ui8, %t);
304 assert_checkequal(p <> UI8, [%t,%t;%t,%t]);
305 assert_checkequal(p <> i16, %t);
306 assert_checkequal(p <> I16, [%t,%t;%t,%t]);
307 assert_checkequal(p <> ui16, %t);
308 assert_checkequal(p <> UI16, [%t,%t;%t,%t]);
309 assert_checkequal(p <> i32, %t);
310 assert_checkequal(p <> I32, [%t,%t;%t,%t]);
311 assert_checkequal(p <> ui32, %t);
312 assert_checkequal(p <> UI32, [%t,%t;%t,%t]);
313 assert_checkequal(p <> str, %t);
314 assert_checkequal(p <> STR, %t);
315 assert_checkequal(p <> b, %t);
316 assert_checkequal(p <> B, %t);
317
318 assert_checkequal(pc <> empty, %t);
319 assert_checkequal(pc <> r, %t);
320 assert_checkequal(pc <> c, %t);
321 assert_checkequal(pc <> R, [%t,%t;%t,%t]);
322 assert_checkequal(pc <> C, [%t,%t;%t,%t]);
323 assert_checkequal(pc <> e, %t);
324 assert_checkequal(pc <> ec, %t);
325 assert_checkequal(pc <> p, %t);
326 assert_checkequal(pc <> pc, %f);
327 assert_checkequal(pc <> P, [%t,%t;%t,%t]);
328 assert_checkequal(pc <> PC, [%t,%t;%t,%t]);
329 assert_checkequal(pc <> i8, %t);
330 assert_checkequal(pc <> I8, [%t,%t;%t,%t]);
331 assert_checkequal(pc <> ui8, %t);
332 assert_checkequal(pc <> UI8, [%t,%t;%t,%t]);
333 assert_checkequal(pc <> i16, %t);
334 assert_checkequal(pc <> I16, [%t,%t;%t,%t]);
335 assert_checkequal(pc <> ui16, %t);
336 assert_checkequal(pc <> UI16, [%t,%t;%t,%t]);
337 assert_checkequal(pc <> i32, %t);
338 assert_checkequal(pc <> I32, [%t,%t;%t,%t]);
339 assert_checkequal(pc <> ui32, %t);
340 assert_checkequal(pc <> UI32, [%t,%t;%t,%t]);
341 assert_checkequal(pc <> str, %t);
342 assert_checkequal(pc <> STR, %t);
343 assert_checkequal(pc <> b, %t);
344 assert_checkequal(pc <> B, %t);
345
346 assert_checkequal(P <> empty, %t);
347 assert_checkequal(P <> r, [%t,%f;%t,%t]);
348 assert_checkequal(P <> c, [%t,%t;%t,%t]);
349 assert_checkequal(P <> R, [%t,%f;%t,%t]);
350 assert_checkequal(P <> C, [%t,%t;%t,%t]);
351 assert_checkequal(P <> e, [%t,%t;%t,%t]);
352 assert_checkequal(P <> ec, [%t,%t;%t,%t]);
353 assert_checkequal(P <> p, [%t,%t;%t,%t]);
354 assert_checkequal(P <> pc, [%t,%t;%t,%t]);
355 assert_checkequal(P <> P, [%f,%f;%f,%f]);
356 assert_checkequal(P <> PC, [%t,%f;%t,%t]);
357 assert_checkequal(P <> i8, [%t,%t;%t,%t]);
358 assert_checkequal(P <> I8, [%t,%f;%t,%t]);
359 assert_checkequal(P <> ui8, [%t,%t;%t,%t]);
360 assert_checkequal(P <> UI8, [%t,%f;%t,%t]);
361 assert_checkequal(P <> i16, [%t,%t;%t,%t]);
362 assert_checkequal(P <> I16, [%t,%f;%t,%t]);
363 assert_checkequal(P <> ui16, [%t,%t;%t,%t]);
364 assert_checkequal(P <> UI16, [%t,%f;%t,%t]);
365 assert_checkequal(P <> i32, [%t,%t;%t,%t]);
366 assert_checkequal(P <> I32, [%t,%f;%t,%t]);
367 assert_checkequal(P <> ui32, [%t,%t;%t,%t]);
368 assert_checkequal(P <> UI32, [%t,%f;%t,%t]);
369 assert_checkequal(P <> str, %t);
370 assert_checkequal(P <> STR, %t);
371 assert_checkequal(P <> b, %t);
372 assert_checkequal(P <> B, %t);
373
374 assert_checkequal(PC <> empty, %t);
375 assert_checkequal(PC <> r, [%t,%f;%t,%t]);
376 assert_checkequal(PC <> c, [%t,%t;%t,%t]);
377 assert_checkequal(PC <> R, [%t,%f;%t,%t]);
378 assert_checkequal(PC <> C, [%t,%t;%t,%t]);
379 assert_checkequal(PC <> e, [%t,%t;%t,%t]);
380 assert_checkequal(PC <> ec, [%t,%t;%t,%t]);
381 assert_checkequal(PC <> p, [%t,%t;%t,%t]);
382 assert_checkequal(PC <> pc, [%t,%t;%t,%t]);
383 assert_checkequal(PC <> P, [%t,%f;%t,%t]);
384 assert_checkequal(PC <> PC, [%f,%f;%f,%f]);
385 assert_checkequal(PC <> i8, [%t,%t;%t,%t]);
386 assert_checkequal(PC <> I8, [%t,%f;%t,%t]);
387 assert_checkequal(PC <> ui8, [%t,%t;%t,%t]);
388 assert_checkequal(PC <> UI8, [%t,%f;%t,%t]);
389 assert_checkequal(PC <> i16, [%t,%t;%t,%t]);
390 assert_checkequal(PC <> I16, [%t,%f;%t,%t]);
391 assert_checkequal(PC <> ui16, [%t,%t;%t,%t]);
392 assert_checkequal(PC <> UI16, [%t,%f;%t,%t]);
393 assert_checkequal(PC <> i32, [%t,%t;%t,%t]);
394 assert_checkequal(PC <> I32, [%t,%f;%t,%t]);
395 assert_checkequal(PC <> ui32, [%t,%t;%t,%t]);
396 assert_checkequal(PC <> UI32, [%t,%f;%t,%t]);
397 assert_checkequal(PC <> str, %t);
398 assert_checkequal(PC <> STR, %t);
399 assert_checkequal(PC <> b, %t);
400 assert_checkequal(PC <> B, %t);
401
402 assert_checkequal(SP <> empty, %t);
403 assert_checkequal(SP <> r, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
404 assert_checkequal(SP <> c, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
405 assert_checkequal(SP <> R, %t);
406 assert_checkequal(SP <> C, %t);
407 assert_checkequal(SP <> e, %t);
408 assert_checkequal(SP <> ec, %t);
409 assert_checkequal(SP <> SP, sparse([1,1],[%f],[4,10]));
410 assert_checkequal(SP <> SPC, sparse([1,2;3,10;4,5],[%t;%t;%t],[4,10]));
411 assert_checkequal(SP <> SP1, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
412 assert_checkequal(SP <> SPC1, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
413 assert_checkequal(SP <> i8, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
414 assert_checkequal(SP <> I8, %t);
415 assert_checkequal(SP <> ui8, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
416 assert_checkequal(SP <> UI8, %t);
417 assert_checkequal(SP <> i16, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
418 assert_checkequal(SP <> I16, %t);
419 assert_checkequal(SP <> ui16, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
420 assert_checkequal(SP <> UI16, %t);
421 assert_checkequal(SP <> i32, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
422 assert_checkequal(SP <> I32, %t);
423 assert_checkequal(SP <> ui32, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
424 assert_checkequal(SP <> UI32, %t);
425 assert_checkequal(SP <> str, %t);
426 assert_checkequal(SP <> STR, %t);
427 assert_checkequal(SP <> b, %t);
428 assert_checkequal(SP <> B, %t);
429 assert_checkequal(SP <> SPB, %t);
430
431 assert_checkequal(SPC <> empty, %t);
432 assert_checkequal(SPC <> r, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
433 assert_checkequal(SPC <> c, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
434 assert_checkequal(SPC <> R, %t);
435 assert_checkequal(SPC <> C, %t);
436 assert_checkequal(SPC <> e, %t);
437 assert_checkequal(SPC <> ec, %t);
438 assert_checkequal(SPC <> SP, sparse([1,2;3,10;4,5],[%t;%t;%t],[4,10]));
439 assert_checkequal(SPC <> SPC, sparse([1,1],[%f],[4,10]));
440 assert_checkequal(SPC <> SP1, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
441 assert_checkequal(SPC <> SPC1, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
442 assert_checkequal(SPC <> i8, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
443 assert_checkequal(SPC <> I8, %t);
444 assert_checkequal(SPC <> ui8, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
445 assert_checkequal(SPC <> UI8, %t);
446 assert_checkequal(SPC <> i16, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
447 assert_checkequal(SPC <> I16, %t);
448 assert_checkequal(SPC <> ui16, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
449 assert_checkequal(SPC <> UI16, %t);
450 assert_checkequal(SPC <> i32, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
451 assert_checkequal(SPC <> I32, %t);
452 assert_checkequal(SPC <> ui32, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
453 assert_checkequal(SPC <> UI32, %t);
454 assert_checkequal(SPC <> str, %t);
455 assert_checkequal(SPC <> STR, %t);
456 assert_checkequal(SPC <> b, %t);
457 assert_checkequal(SPC <> B, %t);
458 assert_checkequal(SPC <> SPB, %t);
459
460 assert_checkequal(SP1 <> empty, %t);
461 assert_checkequal(SP1 <> r, sparse([1,1],%t,[1,1]));
462 assert_checkequal(SP1 <> c, sparse([1,1],%t,[1,1]));
463 assert_checkequal(SP1 <> R, %t);
464 assert_checkequal(SP1 <> C, %t);
465 assert_checkequal(SP1 <> e, %t);
466 assert_checkequal(SP1 <> ec, %t);
467 assert_checkequal(SP1 <> SP, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
468 assert_checkequal(SP1 <> SPC, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
469 assert_checkequal(SP1 <> SP1, sparse([1,1],[%f],[1,1]));
470 assert_checkequal(SP1 <> SPC1, sparse([1,1],%t,[1,1]));
471 assert_checkequal(SP1 <> i8, sparse([1,1],%t,[1,1]));
472 assert_checkequal(SP1 <> I8, %t);
473 assert_checkequal(SP1 <> ui8, sparse([1,1],%t,[1,1]));
474 assert_checkequal(SP1 <> UI8, %t);
475 assert_checkequal(SP1 <> i16, sparse([1,1],%t,[1,1]));
476 assert_checkequal(SP1 <> I16, %t);
477 assert_checkequal(SP1 <> ui16, sparse([1,1],%t,[1,1]));
478 assert_checkequal(SP1 <> UI16, %t);
479 assert_checkequal(SP1 <> i32, sparse([1,1],%t,[1,1]));
480 assert_checkequal(SP1 <> I32, %t);
481 assert_checkequal(SP1 <> ui32, sparse([1,1],%t,[1,1]));
482 assert_checkequal(SP1 <> UI32, %t);
483 assert_checkequal(SP1 <> str, %t);
484 assert_checkequal(SP1 <> STR, %t);
485 assert_checkequal(SP1 <> b, %t);
486 assert_checkequal(SP1 <> B, %t);
487 assert_checkequal(SP1 <> SPB, %t);
488
489 assert_checkequal(SPC1 <> empty, %t);
490 assert_checkequal(SPC1 <> r, sparse([1,1],%t,[1,1]));
491 assert_checkequal(SPC1 <> c, sparse([1,1],%t,[1,1]));
492 assert_checkequal(SPC1 <> R, %t);
493 assert_checkequal(SPC1 <> C, %t);
494 assert_checkequal(SPC1 <> e, %t);
495 assert_checkequal(SPC1 <> ec, %t);
496 assert_checkequal(SPC1 <> SP, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
497 assert_checkequal(SPC1 <> SPC, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
498 assert_checkequal(SPC1 <> SP1, sparse([1,1],%t,[1,1]));
499 assert_checkequal(SPC1 <> SPC1, sparse([1,1],[%f],[1,1]));
500 assert_checkequal(SPC1 <> i8, sparse([1,1],%t,[1,1]));
501 assert_checkequal(SPC1 <> I8, %t);
502 assert_checkequal(SPC1 <> ui8, sparse([1,1],%t,[1,1]));
503 assert_checkequal(SPC1 <> UI8, %t);
504 assert_checkequal(SPC1 <> i16, sparse([1,1],%t,[1,1]));
505 assert_checkequal(SPC1 <> I16, %t);
506 assert_checkequal(SPC1 <> ui16, sparse([1,1],%t,[1,1]));
507 assert_checkequal(SPC1 <> UI16, %t);
508 assert_checkequal(SPC1 <> i32, sparse([1,1],%t,[1,1]));
509 assert_checkequal(SPC1 <> I32, %t);
510 assert_checkequal(SPC1 <> ui32, sparse([1,1],%t,[1,1]));
511 assert_checkequal(SPC1 <> UI32, %t);
512 assert_checkequal(SPC1 <> str, %t);
513 assert_checkequal(SPC1 <> STR, %t);
514 assert_checkequal(SPC1 <> b, %t);
515 assert_checkequal(SPC1 <> B, %t);
516 assert_checkequal(SPC1 <> SPB, %t);
517
518 assert_checkequal(i8 <> empty, %t);
519 assert_checkequal(i8 <> r, %t);
520 assert_checkequal(i8 <> c, %t);
521 assert_checkequal(i8 <> R, [%t,%t;%t,%t]);
522 assert_checkequal(i8 <> C, [%t,%t;%t,%t]);
523 assert_checkequal(i8 <> e, %t);
524 assert_checkequal(i8 <> ec, %t);
525 assert_checkequal(i8 <> p, %t);
526 assert_checkequal(i8 <> pc, %t);
527 assert_checkequal(i8 <> P, [%t,%t;%t,%t]);
528 assert_checkequal(i8 <> PC, [%t,%t;%t,%t]);
529 assert_checkequal(i8 <> SP, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
530 assert_checkequal(i8 <> SPC, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
531 assert_checkequal(i8 <> SP1, sparse([1,1],%t,[1,1]));
532 assert_checkequal(i8 <> SPC1, sparse([1,1],%t,[1,1]));
533 assert_checkequal(i8 <> i8, %f);
534 assert_checkequal(i8 <> I8, [%f,%t;%t,%t]);
535 assert_checkequal(i8 <> ui8, %t);
536 assert_checkequal(i8 <> UI8, [%t,%t;%t,%t]);
537 assert_checkequal(i8 <> i16, %t);
538 assert_checkequal(i8 <> I16, [%t,%t;%t,%t]);
539 assert_checkequal(i8 <> ui16, %t);
540 assert_checkequal(i8 <> UI16, [%t,%t;%t,%t]);
541 assert_checkequal(i8 <> i32, %t);
542 assert_checkequal(i8 <> I32, [%t,%t;%t,%t]);
543 assert_checkequal(i8 <> ui32, %t);
544 assert_checkequal(i8 <> UI32, [%t,%t;%t,%t]);
545 assert_checkequal(i8 <> str, %t);
546 assert_checkequal(i8 <> STR, %t);
547 assert_checkequal(i8 <> b, %t);
548 assert_checkequal(i8 <> B, [%t,%t;%t,%t]);
549 assert_checkequal(i8 <> SPB, %t);
550
551 assert_checkequal(I8 <> empty, %t);
552 assert_checkequal(I8 <> r, [%t,%f;%t,%t]);
553 assert_checkequal(I8 <> c, [%t,%t;%t,%t]);
554 assert_checkequal(I8 <> R, [%t,%f;%t,%t]);
555 assert_checkequal(I8 <> C, [%t,%t;%t,%t]);
556 assert_checkequal(I8 <> e, [%t,%t;%t,%t]);
557 assert_checkequal(I8 <> ec, [%t,%t;%t,%t]);
558 assert_checkequal(I8 <> p, [%t,%t;%t,%t]);
559 assert_checkequal(I8 <> pc, [%t,%t;%t,%t]);
560 assert_checkequal(I8 <> P, [%t,%f;%t,%t]);
561 assert_checkequal(I8 <> PC, [%t,%f;%t,%t]);
562 assert_checkequal(I8 <> SP, %t);
563 assert_checkequal(I8 <> SPC, %t);
564 assert_checkequal(I8 <> SP1, %t);
565 assert_checkequal(I8 <> SPC1, %t);
566 assert_checkequal(I8 <> i8, [%f,%t;%t,%t]);
567 assert_checkequal(I8 <> I8, [%f,%f;%f,%f]);
568 assert_checkequal(I8 <> ui8, [%t,%t;%t,%t]);
569 assert_checkequal(I8 <> UI8, [%t,%f;%t,%t]);
570 assert_checkequal(I8 <> i16, [%t,%t;%t,%t]);
571 assert_checkequal(I8 <> I16, [%t,%f;%t,%t]);
572 assert_checkequal(I8 <> ui16, [%t,%t;%t,%t]);
573 assert_checkequal(I8 <> UI16, [%t,%f;%t,%t]);
574 assert_checkequal(I8 <> i32, [%t,%t;%t,%f]);
575 assert_checkequal(I8 <> I32, [%t,%f;%t,%t]);
576 assert_checkequal(I8 <> ui32, [%t,%t;%t,%t]);
577 assert_checkequal(I8 <> UI32, [%t,%f;%t,%t]);
578 assert_checkequal(I8 <> str, %t);
579 assert_checkequal(I8 <> STR, %t);
580 assert_checkequal(I8 <> b, [%t,%t;%t,%t]);
581 assert_checkequal(I8 <> B, [%t,%t;%t,%t]);
582 assert_checkequal(I8 <> SPB, %t);
583
584 assert_checkequal(ui8 <> empty, %t);
585 assert_checkequal(ui8 <> r, %t);
586 assert_checkequal(ui8 <> c, %t);
587 assert_checkequal(ui8 <> R, [%t,%t;%t,%t]);
588 assert_checkequal(ui8 <> C, [%t,%t;%t,%t]);
589 assert_checkequal(ui8 <> e, %t);
590 assert_checkequal(ui8 <> ec, %t);
591 assert_checkequal(ui8 <> p, %t);
592 assert_checkequal(ui8 <> pc, %t);
593 assert_checkequal(ui8 <> P, [%t,%t;%t,%t]);
594 assert_checkequal(ui8 <> PC, [%t,%t;%t,%t]);
595 assert_checkequal(ui8 <> SP, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
596 assert_checkequal(ui8 <> SPC, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
597 assert_checkequal(ui8 <> SP1, sparse([1,1],%t,[1,1]));
598 assert_checkequal(ui8 <> SPC1, sparse([1,1],%t,[1,1]));
599 assert_checkequal(ui8 <> i8, %t);
600 assert_checkequal(ui8 <> I8, [%t,%t;%t,%t]);
601 assert_checkequal(ui8 <> ui8, %f);
602 assert_checkequal(ui8 <> UI8, [%f,%t;%t,%t]);
603 assert_checkequal(ui8 <> i16, %t);
604 assert_checkequal(ui8 <> I16, [%t,%t;%t,%t]);
605 assert_checkequal(ui8 <> ui16, %t);
606 assert_checkequal(ui8 <> UI16, [%t,%t;%t,%t]);
607 assert_checkequal(ui8 <> i32, %t);
608 assert_checkequal(ui8 <> I32, [%t,%t;%t,%t]);
609 assert_checkequal(ui8 <> ui32, %t);
610 assert_checkequal(ui8 <> UI32, [%t,%t;%t,%t]);
611 assert_checkequal(ui8 <> str, %t);
612 assert_checkequal(ui8 <> STR, %t);
613 assert_checkequal(ui8 <> b, %t);
614 assert_checkequal(ui8 <> B, [%t,%t;%t,%t]);
615 assert_checkequal(ui8 <> SPB, %t);
616
617 assert_checkequal(UI8 <> empty, %t);
618 assert_checkequal(UI8 <> r, [%t,%f;%t,%t]);
619 assert_checkequal(UI8 <> c, [%t,%t;%t,%t]);
620 assert_checkequal(UI8 <> R, [%t,%f;%t,%t]);
621 assert_checkequal(UI8 <> C, [%t,%t;%t,%t]);
622 assert_checkequal(UI8 <> e, [%t,%t;%t,%t]);
623 assert_checkequal(UI8 <> ec, [%t,%t;%t,%t]);
624 assert_checkequal(UI8 <> p, [%t,%t;%t,%t]);
625 assert_checkequal(UI8 <> pc, [%t,%t;%t,%t]);
626 assert_checkequal(UI8 <> P, [%t,%f;%t,%t]);
627 assert_checkequal(UI8 <> PC, [%t,%f;%t,%t]);
628 assert_checkequal(UI8 <> SP, %t);
629 assert_checkequal(UI8 <> SPC, %t);
630 assert_checkequal(UI8 <> SP1, %t);
631 assert_checkequal(UI8 <> SPC1, %t);
632 assert_checkequal(UI8 <> i8, [%t,%t;%t,%t]);
633 assert_checkequal(UI8 <> I8, [%t,%f;%t,%t]);
634 assert_checkequal(UI8 <> ui8, [%f,%t;%t,%t]);
635 assert_checkequal(UI8 <> UI8, [%f,%f;%f,%f]);
636 assert_checkequal(UI8 <> i16, [%t,%t;%t,%t]);
637 assert_checkequal(UI8 <> I16, [%t,%f;%t,%t]);
638 assert_checkequal(UI8 <> ui16, [%t,%t;%t,%t]);
639 assert_checkequal(UI8 <> UI16, [%t,%f;%t,%t]);
640 assert_checkequal(UI8 <> i32, [%t,%t;%t,%t]);
641 assert_checkequal(UI8 <> I32, [%t,%f;%t,%t]);
642 assert_checkequal(UI8 <> ui32, [%t,%t;%t,%f]);
643 assert_checkequal(UI8 <> UI32, [%t,%f;%t,%t]);
644 assert_checkequal(UI8 <> str, %t);
645 assert_checkequal(UI8 <> STR, %t);
646 assert_checkequal(UI8 <> b, [%t,%t;%t,%t]);
647 assert_checkequal(UI8 <> B, [%t,%t;%t,%t]);
648 assert_checkequal(UI8 <> SPB, %t);
649
650 assert_checkequal(i16 <> empty, %t);
651 assert_checkequal(i16 <> r, %t);
652 assert_checkequal(i16 <> c, %t);
653 assert_checkequal(i16 <> R, [%t,%t;%t,%t]);
654 assert_checkequal(i16 <> C, [%t,%t;%t,%t]);
655 assert_checkequal(i16 <> e, %t);
656 assert_checkequal(i16 <> ec, %t);
657 assert_checkequal(i16 <> p, %t);
658 assert_checkequal(i16 <> pc, %t);
659 assert_checkequal(i16 <> P, [%t,%t;%t,%t]);
660 assert_checkequal(i16 <> PC, [%t,%t;%t,%t]);
661 assert_checkequal(i16 <> SP, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
662 assert_checkequal(i16 <> SPC, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
663 assert_checkequal(i16 <> SP1, sparse([1,1],%t,[1,1]));
664 assert_checkequal(i16 <> SPC1, sparse([1,1],%t,[1,1]));
665 assert_checkequal(i16 <> i8, %t);
666 assert_checkequal(i16 <> I8, [%t,%t;%t,%t]);
667 assert_checkequal(i16 <> ui8, %t);
668 assert_checkequal(i16 <> UI8, [%t,%t;%t,%t]);
669 assert_checkequal(i16 <> i16, %f);
670 assert_checkequal(i16 <> I16, [%f,%t;%t,%t]);
671 assert_checkequal(i16 <> ui16, %t);
672 assert_checkequal(i16 <> UI16, [%t,%t;%t,%t]);
673 assert_checkequal(i16 <> i32, %t);
674 assert_checkequal(i16 <> I32, [%t,%t;%t,%t]);
675 assert_checkequal(i16 <> ui32, %t);
676 assert_checkequal(i16 <> UI32, [%t,%t;%t,%t]);
677 assert_checkequal(i16 <> str, %t);
678 assert_checkequal(i16 <> STR, %t);
679 assert_checkequal(i16 <> b, %t);
680 assert_checkequal(i16 <> B, [%t,%t;%t,%t]);
681 assert_checkequal(i16 <> SPB, %t);
682
683 assert_checkequal(I16 <> empty, %t);
684 assert_checkequal(I16 <> r, [%t,%f;%t,%t]);
685 assert_checkequal(I16 <> c, [%t,%t;%t,%t]);
686 assert_checkequal(I16 <> R, [%t,%f;%t,%t]);
687 assert_checkequal(I16 <> C, [%t,%t;%t,%t]);
688 assert_checkequal(I16 <> e, [%t,%t;%t,%t]);
689 assert_checkequal(I16 <> ec, [%t,%t;%t,%t]);
690 assert_checkequal(I16 <> p, [%t,%t;%t,%t]);
691 assert_checkequal(I16 <> pc, [%t,%t;%t,%t]);
692 assert_checkequal(I16 <> P, [%t,%f;%t,%t]);
693 assert_checkequal(I16 <> PC, [%t,%f;%t,%t]);
694 assert_checkequal(I16 <> SP, %t);
695 assert_checkequal(I16 <> SPC, %t);
696 assert_checkequal(I16 <> SP1, %t);
697 assert_checkequal(I16 <> SPC1, %t);
698 assert_checkequal(I16 <> i8, [%t,%t;%t,%t]);
699 assert_checkequal(I16 <> I8, [%t,%f;%t,%t]);
700 assert_checkequal(I16 <> ui8, [%t,%t;%t,%t]);
701 assert_checkequal(I16 <> UI8, [%t,%f;%t,%t]);
702 assert_checkequal(I16 <> i16, [%f,%t;%t,%t]);
703 assert_checkequal(I16 <> I16, [%f,%f;%f,%f]);
704 assert_checkequal(I16 <> ui16, [%t,%t;%t,%t]);
705 assert_checkequal(I16 <> UI16, [%t,%f;%t,%t]);
706 assert_checkequal(I16 <> i32, [%t,%t;%t,%t]);
707 assert_checkequal(I16 <> I32, [%t,%f;%t,%t]);
708 assert_checkequal(I16 <> ui32, [%t,%t;%t,%t]);
709 assert_checkequal(I16 <> UI32, [%t,%f;%t,%t]);
710 assert_checkequal(I16 <> str, %t);
711 assert_checkequal(I16 <> STR, %t);
712 assert_checkequal(I16 <> b, [%t,%t;%t,%t]);
713 assert_checkequal(I16 <> B, [%t,%t;%t,%t]);
714 assert_checkequal(I16 <> SPB, %t);
715
716 assert_checkequal(ui16 <> empty, %t);
717 assert_checkequal(ui16 <> r, %t);
718 assert_checkequal(ui16 <> c, %t);
719 assert_checkequal(ui16 <> R, [%t,%t;%t,%t]);
720 assert_checkequal(ui16 <> C, [%t,%t;%t,%t]);
721 assert_checkequal(ui16 <> e, %t);
722 assert_checkequal(ui16 <> ec, %t);
723 assert_checkequal(ui16 <> p, %t);
724 assert_checkequal(ui16 <> pc, %t);
725 assert_checkequal(ui16 <> P, [%t,%t;%t,%t]);
726 assert_checkequal(ui16 <> PC, [%t,%t;%t,%t]);
727 assert_checkequal(ui16 <> SP, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
728 assert_checkequal(ui16 <> SPC, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
729 assert_checkequal(ui16 <> SP1, sparse([1,1],%t,[1,1]));
730 assert_checkequal(ui16 <> SPC1, sparse([1,1],%t,[1,1]));
731 assert_checkequal(ui16 <> i8, %t);
732 assert_checkequal(ui16 <> I8, [%t,%t;%t,%t]);
733 assert_checkequal(ui16 <> ui8, %t);
734 assert_checkequal(ui16 <> UI8, [%t,%t;%t,%t]);
735 assert_checkequal(ui16 <> i16, %t);
736 assert_checkequal(ui16 <> I16, [%t,%t;%t,%t]);
737 assert_checkequal(ui16 <> ui16, %f);
738 assert_checkequal(ui16 <> UI16, [%f,%t;%t,%t]);
739 assert_checkequal(ui16 <> i32, %t);
740 assert_checkequal(ui16 <> I32, [%t,%t;%t,%t]);
741 assert_checkequal(ui16 <> ui32, %t);
742 assert_checkequal(ui16 <> UI32, [%t,%t;%t,%t]);
743 assert_checkequal(ui16 <> str, %t);
744 assert_checkequal(ui16 <> STR, %t);
745 assert_checkequal(ui16 <> b, %t);
746 assert_checkequal(ui16 <> B, [%t,%t;%t,%t]);
747 assert_checkequal(ui16 <> SPB, %t);
748
749 assert_checkequal(UI16 <> empty, %t);
750 assert_checkequal(UI16 <> r, [%t,%f;%t,%t]);
751 assert_checkequal(UI16 <> c, [%t,%t;%t,%t]);
752 assert_checkequal(UI16 <> R, [%t,%f;%t,%t]);
753 assert_checkequal(UI16 <> C, [%t,%t;%t,%t]);
754 assert_checkequal(UI16 <> e, [%t,%t;%t,%t]);
755 assert_checkequal(UI16 <> ec, [%t,%t;%t,%t]);
756 assert_checkequal(UI16 <> p, [%t,%t;%t,%t]);
757 assert_checkequal(UI16 <> pc, [%t,%t;%t,%t]);
758 assert_checkequal(UI16 <> P, [%t,%f;%t,%t]);
759 assert_checkequal(UI16 <> PC, [%t,%f;%t,%t]);
760 assert_checkequal(UI16 <> SP, %t);
761 assert_checkequal(UI16 <> SPC, %t);
762 assert_checkequal(UI16 <> SP1, %t);
763 assert_checkequal(UI16 <> SPC1, %t);
764 assert_checkequal(UI16 <> i8, [%t,%t;%t,%t]);
765 assert_checkequal(UI16 <> I8, [%t,%f;%t,%t]);
766 assert_checkequal(UI16 <> ui8, [%t,%t;%t,%t]);
767 assert_checkequal(UI16 <> UI8, [%t,%f;%t,%t]);
768 assert_checkequal(UI16 <> i16, [%t,%t;%t,%t]);
769 assert_checkequal(UI16 <> I16, [%t,%f;%t,%t]);
770 assert_checkequal(UI16 <> ui16, [%f,%t;%t,%t]);
771 assert_checkequal(UI16 <> UI16, [%f,%f;%f,%f]);
772 assert_checkequal(UI16 <> i32, [%t,%t;%t,%t]);
773 assert_checkequal(UI16 <> I32, [%t,%f;%t,%t]);
774 assert_checkequal(UI16 <> ui32, [%t,%t;%t,%t]);
775 assert_checkequal(UI16 <> UI32, [%t,%f;%t,%t]);
776 assert_checkequal(UI16 <> str, %t);
777 assert_checkequal(UI16 <> STR, %t);
778 assert_checkequal(UI16 <> b, [%t,%t;%t,%t]);
779 assert_checkequal(UI16 <> B, [%t,%t;%t,%t]);
780 assert_checkequal(UI16 <> SPB, %t);
781
782 assert_checkequal(i32 <> empty, %t);
783 assert_checkequal(i32 <> r, %t);
784 assert_checkequal(i32 <> c, %t);
785 assert_checkequal(i32 <> R, [%t,%t;%t,%t]);
786 assert_checkequal(i32 <> C, [%t,%t;%t,%t]);
787 assert_checkequal(i32 <> e, %t);
788 assert_checkequal(i32 <> ec, %t);
789 assert_checkequal(i32 <> p, %t);
790 assert_checkequal(i32 <> pc, %t);
791 assert_checkequal(i32 <> P, [%t,%t;%t,%t]);
792 assert_checkequal(i32 <> PC, [%t,%t;%t,%t]);
793 assert_checkequal(i32 <> SP, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
794 assert_checkequal(i32 <> SPC, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
795 assert_checkequal(i32 <> SP1, sparse([1,1],%t,[1,1]));
796 assert_checkequal(i32 <> SPC1, sparse([1,1],%t,[1,1]));
797 assert_checkequal(i32 <> i8, %t);
798 assert_checkequal(i32 <> I8, [%t,%t;%t,%f]);
799 assert_checkequal(i32 <> ui8, %t);
800 assert_checkequal(i32 <> UI8, [%t,%t;%t,%t]);
801 assert_checkequal(i32 <> i16, %t);
802 assert_checkequal(i32 <> I16, [%t,%t;%t,%t]);
803 assert_checkequal(i32 <> ui16, %t);
804 assert_checkequal(i32 <> UI16, [%t,%t;%t,%t]);
805 assert_checkequal(i32 <> i32, %f);
806 assert_checkequal(i32 <> I32, [%f,%t;%t,%t]);
807 assert_checkequal(i32 <> ui32, %t);
808 assert_checkequal(i32 <> UI32, [%t,%t;%t,%t]);
809 assert_checkequal(i32 <> str, %t);
810 assert_checkequal(i32 <> STR, %t);
811 assert_checkequal(i32 <> b, %t);
812 assert_checkequal(i32 <> B, [%t,%t;%t,%t]);
813 assert_checkequal(i32 <> SPB, %t);
814
815 assert_checkequal(I32 <> empty, %t);
816 assert_checkequal(I32 <> r, [%t,%f;%t,%t]);
817 assert_checkequal(I32 <> c, [%t,%t;%t,%t]);
818 assert_checkequal(I32 <> R, [%t,%f;%t,%t]);
819 assert_checkequal(I32 <> C, [%t,%t;%t,%t]);
820 assert_checkequal(I32 <> e, [%t,%t;%t,%t]);
821 assert_checkequal(I32 <> ec, [%t,%t;%t,%t]);
822 assert_checkequal(I32 <> p, [%t,%t;%t,%t]);
823 assert_checkequal(I32 <> pc, [%t,%t;%t,%t]);
824 assert_checkequal(I32 <> P, [%t,%f;%t,%t]);
825 assert_checkequal(I32 <> PC, [%t,%f;%t,%t]);
826 assert_checkequal(I32 <> SP, %t);
827 assert_checkequal(I32 <> SPC, %t);
828 assert_checkequal(I32 <> SP1, %t);
829 assert_checkequal(I32 <> SPC1, %t);
830 assert_checkequal(I32 <> i8, [%t,%t;%t,%t]);
831 assert_checkequal(I32 <> I8, [%t,%f;%t,%t]);
832 assert_checkequal(I32 <> ui8, [%t,%t;%t,%t]);
833 assert_checkequal(I32 <> UI8, [%t,%f;%t,%t]);
834 assert_checkequal(I32 <> i16, [%t,%t;%t,%t]);
835 assert_checkequal(I32 <> I16, [%t,%f;%t,%t]);
836 assert_checkequal(I32 <> ui16, [%t,%t;%t,%t]);
837 assert_checkequal(I32 <> UI16, [%t,%f;%t,%t]);
838 assert_checkequal(I32 <> i32, [%f,%t;%t,%t]);
839 assert_checkequal(I32 <> I32, [%f,%f;%f,%f]);
840 assert_checkequal(I32 <> ui32, [%t,%t;%t,%t]);
841 assert_checkequal(I32 <> UI32, [%t,%f;%t,%t]);
842 assert_checkequal(I32 <> str, %t);
843 assert_checkequal(I32 <> STR, %t);
844 assert_checkequal(I32 <> b, [%t,%t;%t,%t]);
845 assert_checkequal(I32 <> B, [%t,%t;%t,%t]);
846 assert_checkequal(I32 <> SPB, %t);
847
848 assert_checkequal(ui32 <> empty, %t);
849 assert_checkequal(ui32 <> r, %t);
850 assert_checkequal(ui32 <> c, %t);
851 assert_checkequal(ui32 <> R, [%t,%t;%t,%t]);
852 assert_checkequal(ui32 <> C, [%t,%t;%t,%t]);
853 assert_checkequal(ui32 <> e, %t);
854 assert_checkequal(ui32 <> ec, %t);
855 assert_checkequal(ui32 <> p, %t);
856 assert_checkequal(ui32 <> pc, %t);
857 assert_checkequal(ui32 <> P, [%t,%t;%t,%t]);
858 assert_checkequal(ui32 <> PC, [%t,%t;%t,%t]);
859 assert_checkequal(ui32 <> SP, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
860 assert_checkequal(ui32 <> SPC, sparse([1,1;1,2;1,3;1,4;1,5;1,6;1,7;1,8;1,9;1,10;2,1;2,2;2,3;2,4;2,5;2,6;2,7;2,8;2,9;2,10;3,1;3,2;3,3;3,4;3,5;3,6;3,7;3,8;3,9;3,10;4,1;4,2;4,3;4,4;4,5;4,6;4,7;4,8;4,9;4,10],[%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t;%t],[4,10]));
861 assert_checkequal(ui32 <> SP1, sparse([1,1],%t,[1,1]));
862 assert_checkequal(ui32 <> SPC1, sparse([1,1],%t,[1,1]));
863 assert_checkequal(ui32 <> i8, %t);
864 assert_checkequal(ui32 <> I8, [%t,%t;%t,%t]);
865 assert_checkequal(ui32 <> ui8, %t);
866 assert_checkequal(ui32 <> UI8, [%t,%t;%t,%f]);
867 assert_checkequal(ui32 <> i16, %t);
868 assert_checkequal(ui32 <> I16, [%t,%t;%t,%t]);
869 assert_checkequal(ui32 <> ui16, %t);
870 assert_checkequal(ui32 <> UI16, [%t,%t;%t,%t]);
871 assert_checkequal(ui32 <> i32, %t);
872 assert_checkequal(ui32 <> I32, [%t,%t;%t,%t]);
873 assert_checkequal(ui32 <> ui32, %f);
874 assert_checkequal(ui32 <> UI32, [%f,%t;%t,%t]);
875 assert_checkequal(ui32 <> str, %t);
876 assert_checkequal(ui32 <> STR, %t);
877 assert_checkequal(ui32 <> b, %t);
878 assert_checkequal(ui32 <> B, [%t,%t;%t,%t]);
879 assert_checkequal(ui32 <> SPB, %t);
880
881 assert_checkequal(UI32 <> empty, %t);
882 assert_checkequal(UI32 <> r, [%t,%f;%t,%t]);
883 assert_checkequal(UI32 <> c, [%t,%t;%t,%t]);
884 assert_checkequal(UI32 <> R, [%t,%f;%t,%t]);
885 assert_checkequal(UI32 <> C, [%t,%t;%t,%t]);
886 assert_checkequal(UI32 <> e, [%t,%t;%t,%t]);
887 assert_checkequal(UI32 <> ec, [%t,%t;%t,%t]);
888 assert_checkequal(UI32 <> p, [%t,%t;%t,%t]);
889 assert_checkequal(UI32 <> pc, [%t,%t;%t,%t]);
890 assert_checkequal(UI32 <> P, [%t,%f;%t,%t]);
891 assert_checkequal(UI32 <> PC, [%t,%f;%t,%t]);
892 assert_checkequal(UI32 <> SP, %t);
893 assert_checkequal(UI32 <> SPC, %t);
894 assert_checkequal(UI32 <> SP1, %t);
895 assert_checkequal(UI32 <> SPC1, %t);
896 assert_checkequal(UI32 <> i8, [%t,%t;%t,%t]);
897 assert_checkequal(UI32 <> I8, [%t,%f;%t,%t]);
898 assert_checkequal(UI32 <> ui8, [%t,%t;%t,%t]);
899 assert_checkequal(UI32 <> UI8, [%t,%f;%t,%t]);
900 assert_checkequal(UI32 <> i16, [%t,%t;%t,%t]);
901 assert_checkequal(UI32 <> I16, [%t,%f;%t,%t]);
902 assert_checkequal(UI32 <> ui16, [%t,%t;%t,%t]);
903 assert_checkequal(UI32 <> UI16, [%t,%f;%t,%t]);
904 assert_checkequal(UI32 <> i32, [%t,%t;%t,%t]);
905 assert_checkequal(UI32 <> I32, [%t,%f;%t,%t]);
906 assert_checkequal(UI32 <> ui32, [%f,%t;%t,%t]);
907 assert_checkequal(UI32 <> UI32, [%f,%f;%f,%f]);
908 assert_checkequal(UI32 <> str, %t);
909 assert_checkequal(UI32 <> STR, %t);
910 assert_checkequal(UI32 <> b, [%t,%t;%t,%t]);
911 assert_checkequal(UI32 <> B, [%t,%t;%t,%t]);
912 assert_checkequal(UI32 <> SPB, %t);
913
914 assert_checkequal(str <> empty, %t);
915 assert_checkequal(str <> r, %t);
916 assert_checkequal(str <> c, %t);
917 assert_checkequal(str <> R, %t);
918 assert_checkequal(str <> C, %t);
919 assert_checkequal(str <> e, %t);
920 assert_checkequal(str <> ec, %t);
921 assert_checkequal(str <> p, %t);
922 assert_checkequal(str <> pc, %t);
923 assert_checkequal(str <> P, %t);
924 assert_checkequal(str <> PC, %t);
925 assert_checkequal(str <> SP, %t);
926 assert_checkequal(str <> SPC, %t);
927 assert_checkequal(str <> SP1, %t);
928 assert_checkequal(str <> SPC1, %t);
929 assert_checkequal(str <> i8, %t);
930 assert_checkequal(str <> I8, %t);
931 assert_checkequal(str <> ui8, %t);
932 assert_checkequal(str <> UI8, %t);
933 assert_checkequal(str <> i16, %t);
934 assert_checkequal(str <> I16, %t);
935 assert_checkequal(str <> ui16, %t);
936 assert_checkequal(str <> UI16, %t);
937 assert_checkequal(str <> i32, %t);
938 assert_checkequal(str <> I32, %t);
939 assert_checkequal(str <> ui32, %t);
940 assert_checkequal(str <> UI32, %t);
941 assert_checkequal(str <> str, %f);
942 assert_checkequal(str <> STR, [%t,%t;%t,%t]);
943 assert_checkequal(str <> b, %t);
944 assert_checkequal(str <> B, %t);
945 assert_checkequal(str <> SPB, %t);
946
947 assert_checkequal(STR <> empty, %t);
948 assert_checkequal(STR <> r, %t);
949 assert_checkequal(STR <> c, %t);
950 assert_checkequal(STR <> R, %t);
951 assert_checkequal(STR <> C, %t);
952 assert_checkequal(STR <> e, %t);
953 assert_checkequal(STR <> ec, %t);
954 assert_checkequal(STR <> p, %t);
955 assert_checkequal(STR <> pc, %t);
956 assert_checkequal(STR <> P, %t);
957 assert_checkequal(STR <> PC, %t);
958 assert_checkequal(STR <> SP, %t);
959 assert_checkequal(STR <> SPC, %t);
960 assert_checkequal(STR <> SP1, %t);
961 assert_checkequal(STR <> SPC1, %t);
962 assert_checkequal(STR <> i8, %t);
963 assert_checkequal(STR <> I8, %t);
964 assert_checkequal(STR <> ui8, %t);
965 assert_checkequal(STR <> UI8, %t);
966 assert_checkequal(STR <> i16, %t);
967 assert_checkequal(STR <> I16, %t);
968 assert_checkequal(STR <> ui16, %t);
969 assert_checkequal(STR <> UI16, %t);
970 assert_checkequal(STR <> i32, %t);
971 assert_checkequal(STR <> I32, %t);
972 assert_checkequal(STR <> ui32, %t);
973 assert_checkequal(STR <> UI32, %t);
974 assert_checkequal(STR <> str, [%t,%t;%t,%t]);
975 assert_checkequal(STR <> STR, [%f,%f;%f,%f]);
976 assert_checkequal(STR <> b, %t);
977 assert_checkequal(STR <> B, %t);
978 assert_checkequal(STR <> SPB, %t);
979
980 assert_checkequal(b <> empty, %t);
981 assert_checkequal(b <> r, %t);
982 assert_checkequal(b <> c, %t);
983 assert_checkequal(b <> R, %t);
984 assert_checkequal(b <> C, %t);
985 assert_checkequal(b <> e, %t);
986 assert_checkequal(b <> ec, %t);
987 assert_checkequal(b <> p, %t);
988 assert_checkequal(b <> pc, %t);
989 assert_checkequal(b <> P, %t);
990 assert_checkequal(b <> PC, %t);
991 assert_checkequal(b <> SP, %t);
992 assert_checkequal(b <> SPC, %t);
993 assert_checkequal(b <> SP1, %t);
994 assert_checkequal(b <> SPC1, %t);
995 assert_checkequal(b <> i8, %t);
996 assert_checkequal(b <> I8, [%t,%t;%t,%t]);
997 assert_checkequal(b <> ui8, %t);
998 assert_checkequal(b <> UI8, [%t,%t;%t,%t]);
999 assert_checkequal(b <> i16, %t);
1000 assert_checkequal(b <> I16, [%t,%t;%t,%t]);
1001 assert_checkequal(b <> ui16, %t);
1002 assert_checkequal(b <> UI16, [%t,%t;%t,%t]);
1003 assert_checkequal(b <> i32, %t);
1004 assert_checkequal(b <> I32, [%t,%t;%t,%t]);
1005 assert_checkequal(b <> ui32, %t);
1006 assert_checkequal(b <> UI32, [%t,%t;%t,%t]);
1007 assert_checkequal(b <> str, %t);
1008 assert_checkequal(b <> STR, %t);
1009 assert_checkequal(b <> b, %f);
1010 assert_checkequal(b <> B, [%t,%f;%f,%t]);
1011 assert_checkequal(b <> SPB, sparse([1,2;2,1],[%t;%t],[2,2]));
1012
1013 assert_checkequal(B <> empty, %t);
1014 assert_checkequal(B <> r, %t);
1015 assert_checkequal(B <> c, %t);
1016 assert_checkequal(B <> R, %t);
1017 assert_checkequal(B <> C, %t);
1018 assert_checkequal(B <> e, %t);
1019 assert_checkequal(B <> ec, %t);
1020 assert_checkequal(B <> p, %t);
1021 assert_checkequal(B <> pc, %t);
1022 assert_checkequal(B <> P, %t);
1023 assert_checkequal(B <> PC, %t);
1024 assert_checkequal(B <> SP, %t);
1025 assert_checkequal(B <> SPC, %t);
1026 assert_checkequal(B <> SP1, %t);
1027 assert_checkequal(B <> SPC1, %t);
1028 assert_checkequal(B <> i8, [%t,%t;%t,%t]);
1029 assert_checkequal(B <> I8, [%t,%t;%t,%t]);
1030 assert_checkequal(B <> ui8, [%t,%t;%t,%t]);
1031 assert_checkequal(B <> UI8, [%t,%t;%t,%t]);
1032 assert_checkequal(B <> i16, [%t,%t;%t,%t]);
1033 assert_checkequal(B <> I16, [%t,%t;%t,%t]);
1034 assert_checkequal(B <> ui16, [%t,%t;%t,%t]);
1035 assert_checkequal(B <> UI16, [%t,%t;%t,%t]);
1036 assert_checkequal(B <> i32, [%t,%t;%t,%t]);
1037 assert_checkequal(B <> I32, [%t,%t;%t,%t]);
1038 assert_checkequal(B <> ui32, [%t,%t;%t,%t]);
1039 assert_checkequal(B <> UI32, [%t,%t;%t,%t]);
1040 assert_checkequal(B <> str, %t);
1041 assert_checkequal(B <> STR, %t);
1042 assert_checkequal(B <> b, [%t,%f;%f,%t]);
1043 assert_checkequal(B <> B, [%f,%f;%f,%f]);
1044 assert_checkequal(B <> SPB, sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,2]));
1045
1046 assert_checkequal(SPB <> empty, %t);
1047 assert_checkequal(SPB <> r, %t);
1048 assert_checkequal(SPB <> c, %t);
1049 assert_checkequal(SPB <> R, %t);
1050 assert_checkequal(SPB <> C, %t);
1051 assert_checkequal(SPB <> e, %t);
1052 assert_checkequal(SPB <> ec, %t);
1053 assert_checkequal(SPB <> SP, %t);
1054 assert_checkequal(SPB <> SPC, %t);
1055 assert_checkequal(SPB <> SP1, %t);
1056 assert_checkequal(SPB <> SPC1, %t);
1057 assert_checkequal(SPB <> i8, %t);
1058 assert_checkequal(SPB <> I8, %t);
1059 assert_checkequal(SPB <> ui8, %t);
1060 assert_checkequal(SPB <> UI8, %t);
1061 assert_checkequal(SPB <> i16, %t);
1062 assert_checkequal(SPB <> I16, %t);
1063 assert_checkequal(SPB <> ui16, %t);
1064 assert_checkequal(SPB <> UI16, %t);
1065 assert_checkequal(SPB <> i32, %t);
1066 assert_checkequal(SPB <> I32, %t);
1067 assert_checkequal(SPB <> ui32, %t);
1068 assert_checkequal(SPB <> UI32, %t);
1069 assert_checkequal(SPB <> str, %t);
1070 assert_checkequal(SPB <> STR, %t);
1071 assert_checkequal(SPB <> b, sparse([1,2;2,1],[%t;%t],[2,2]));
1072 assert_checkequal(SPB <> B, sparse([1,1;1,2;2,1;2,2],[%t;%t;%t;%t],[2,2]));
1073 assert_checkequal(SPB <> SPB, sparse([1,1],[%f],[2,2]));
1074
1075 assert_checkequal(["a" "b"] <> ["a" "b" "c"],%t);
1076 assert_checkequal(["a" "b"] <> ["a" ; "b"],%t);
1077 assert_checkequal(["a" "b" "c"] <> ["a" "b"],%t);
1078 assert_checkequal(["a" "b"; "a" "b"] <> ["a" "b"],%t);
1079
1080 //macro
1081 deff("[x]=myplus(y,z)","x=y+z");
1082
1083 deff("[x]=mymacro(y,z)",["a=3*y+1"; "x=a*z+y"]);
1084
1085 assert_checkequal(myplus <> myplus,%f);
1086 assert_checkequal(myplus <> mymacro,%t);
1087 assert_checkequal(myplus <> [],%t);
1088 assert_checkequal(myplus <> 2,%t);
1089
1090 //struct
1091 test_st=struct("double",1,"string","test","int8",int8(2),"struct",struct("valeur",0));
1092 test_st2=struct("double",1,"string","test","int16",int8(2),"struct",1);
1093 test_st4=struct("double",1,"string","test","int8",int8(4),"struct",struct("valeur",0));
1094 test_st8=struct("double",8,"string","test","int8",int8(8),"struct",struct("valeur",0));
1095
1096 assert_checkequal(test_st <> test_st, %f);
1097 assert_checkequal(test_st <> test_st2, %t);
1098 assert_checkequal([test_st4 test_st8] <> [test_st test_st], [%t,%t]);
1099 assert_checkequal([test_st, test_st4;test_st4,test_st8] <> [test_st, test_st; test_st,test_st], [%f,%t;%t,%t]);
1100 assert_checkequal(test_st <> [], %t);
1101
1102 //function
1103 assert_checkequal(acosd <> acosd, %f);
1104 assert_checkequal(acosd <> [], %t);
1105 assert_checkequal(acosd <> 2, %t);
1106
1107 //polynom
1108 res = horner(1/(1-%s),1/(1-%s));
1109
1110 assert_checkequal(res <> (1-%s)/-%s, %f);
1111 assert_checkequal(res <> (1-%s)/1, %t);
1112 assert_checkequal(res <> 1/-%s, %t);
1113
1114 // <> with a type==0 object (void or listdelete)
1115 // --------------------------------------------
1116 L = list(,2);
1117 assert_checkfalse(L(1) <> L(1));
1118 assert_checkfalse(null() <> null());
1119 assert_checktrue(L(1) <> null());
1120 assert_checktrue(null() <> L(1));
1121 //
1122 lss = syslin('c',[0,1;0,0],[1;1],[1,1]);
1123 ptr = lufact(sparse(rand(5,5)));
1124 x = 1:10; h5File = TMPDIR + "/x.sod"; save(h5File,"x"); h5 = h5open(h5File);
1125 program = macr2tree(%0_o_0);
1126 xml = xmlReadStr("<root><a rib=""bar""><b>Hello</b></a></root>");
1127 L2 = list(1, [], %z, %f, sparse(5), sparse(%t), int8(2), "abc", sin, sind, ..
1128     list(3), list(), {1,%t}, {}, struct("a",3), 1/%z, 1:$, lss, ptr, ..
1129     h5, program, xml);
1130 for object = L2
1131     assert_checktrue(object <> L(1));
1132     assert_checktrue(object <> null());
1133     assert_checktrue(L(1) <> object);
1134     assert_checktrue(null() <> object);
1135 end
1136 h5close(h5);
1137 ludel(ptr);
1138 xmlDelete(xml);
1139 mdelete(h5File);