tests reorganization :
[scilab.git] / scilab / modules / integer / tests / unit_tests / intops.dia.ref
1  
2 // Copyright INRIA
3  
4 //extractions
5  
6 v=int8([1 2 3]);
7  
8 if v(2)<>int8(2) then bugmes();quit;end
9  
10 if or(v([1 3])<>int8([1 3])) then bugmes();quit;end
11  
12 if  or(v([3 3])<>int8([3 3])) then bugmes();quit;end
13  
14 if  or(v(:)<>int8([1 2 3]')) then bugmes();quit;end
15  
16 if v([])<>[] then bugmes();quit;end
17  
18 v=int32([1 2 3;4 5 6]);
19  
20 if v(2)<>int8(4) then bugmes();quit;end
21  
22 if  or(v([1 3])<>int8([1;2])) then bugmes();quit;end
23  
24 if  or(v([3 3])<>int8([2;2])) then bugmes();quit;end
25  
26 if  or(v(:)<>int8([1;4;2;5;3;6])) then bugmes();quit;end
27  
28 if v([])<>[] then bugmes();quit;end
29  
30  
31 if v(2,1)<>int8(4) then bugmes();quit;end
32  
33 if or(v(1,[1 3])<>int8([1 3])) then bugmes();quit;end
34  
35 if  or(v(1,[3 3])<>int8([3 3])) then bugmes();quit;end
36  
37 if  or(v(1,:)<>int8([1 2 3])) then bugmes();quit;end
38  
39 if  or(v(:,2)<>int8([2;5])) then bugmes();quit;end
40  
41 if  or(v([1 1],:)<>int8([1 2 3;1 2 3])) then bugmes();quit;end
42  
43 if  or(v(:,[2 1])<>int8([2 1;5 4])) then bugmes();quit;end
44  
45  
46  
47 if or(v(1,1:$)<>int8([1 2 3])) then bugmes();quit;end
48  
49 if or(v(1:$,2)<>int8([2;5])) then bugmes();quit;end
50  
51 if or(v([1 1],1:$)<>int8([1 2 3;1 2 3])) then bugmes();quit;end
52  
53 if or(v(1:$,[2 1])<>int8([2 1;5 4])) then bugmes();quit;end
54  
55  
56  
57  
58  
59 //insertion
60  
61 v=int8([1 2 3]);
62  
63 v(2)=int8(3);if or(v<>int8([1 3 3])) then bugmes();quit;end
64  
65  
66 v(4)=int8(-5);if or(v<>int8([1 3 3 -5])) then bugmes();quit;end
67  
68  
69 v([1 4])=int8([2 5]);if or(v<>int8([2 3 3 5])) then bugmes();quit;end
70  
71 v([1 1])=int8([2 5]);if or(v<>int8([5 3 3 5])) then bugmes();quit;end
72  
73 v([1 1 1 1 1 1])=int8([2 5 6 7 8 9]);if or(v<>int8([9 3 3 5])) then bugmes();quit;end
74  
75 v([4 2])=int8([8 5]);if or(v<>int8([9 5 3 8])) then bugmes();quit;end
76  
77  
78 v=uint16([1 2 3]);
79  
80 v(2)=uint16(3);if or(v<>uint16([1 3 3])) then bugmes();quit;end
81  
82  
83 v(4)=uint16(-5);if or(v<>uint16([1 3 3 -5])) then bugmes();quit;end
84  
85  
86 v([1 4])=uint16([2 5]);if or(v<>uint16([2 3 3 5])) then bugmes();quit;end
87  
88 v([1 1])=uint16([2 5]);if or(v<>uint16([5 3 3 5])) then bugmes();quit;end
89  
90 v([1 1 1 1 1 1])=uint16([2 5 6 7 8 9]);if or(v<>uint16([9 3 3 5])) then bugmes();quit;end
91  
92 v([4 2])=uint16([8 5]);if or(v<>uint16([9 5 3 8])) then bugmes();quit;end
93  
94  
95  
96  
97 v=uint8([1 2 3]);
98  
99 v(2,4)=uint8(10);if or(v<>uint8([1 2 3 0;0 0 0 10])) then bugmes();quit;end
100  
101 v([2 2],4)=uint8([10;20]);if or(v<>uint8([1 2 3 0;0 0 0 20])) then bugmes();quit;end
102  
103 v([2 1],4)=uint8([10;20]);if or(v<>uint8([1 2 3 20;0 0 0 10])) then bugmes();quit;end
104  
105 v([2 2 2],4)=uint8([10;20;30]);if or(v<>uint8([1 2 3 20;0 0 0 30])) then bugmes();quit;end
106  
107  
108 v=int32([1 2 3]);
109  
110 v(2,4)=int32(10);if or(v<>int32([1 2 3 0;0 0 0 10])) then bugmes();quit;end
111  
112 v([2 2],4)=int32([10;20]);if or(v<>int32([1 2 3 0;0 0 0 20])) then bugmes();quit;end
113  
114 v([2 1],4)=int32([10;20]);if or(v<>int32([1 2 3 20;0 0 0 10])) then bugmes();quit;end
115  
116 v([2 2 2],4)=int32([10;20;30]);if or(v<>int32([1 2 3 20;0 0 0 30])) then bugmes();quit;end
117  
118  
119  
120  
121 v=int16([1 2 3;0 0 10]);
122  
123 v(1,[1 1 1 1])=int16(1:4);;if or(v<>int16([4 2 3;0 0 10])) then bugmes();quit;end
124  
125 v([2 2],[1 1 1 1])=int16([1:4;2:5]);if or(v<>int16([4 2 3;5 0 10])) then bugmes();quit;end
126  
127 v(3,4)=int16(7);if or(v<>int16([4 2 3 0;5 0 10 0;0 0 0 7])) then bugmes();quit;end
128  
129  
130 v=uint32([1 2 3;0 0 10]);
131  
132 v(1,[1 1 1 1])=uint32(1:4);;if or(v<>uint32([4 2 3;0 0 10])) then bugmes();quit;end
133  
134 v([2 2],[1 1 1 1])=uint32([1:4;2:5]);if or(v<>uint32([4 2 3;5 0 10])) then bugmes();quit;end
135  
136 v(3,4)=uint32(7);if or(v<>uint32([4 2 3 0;5 0 10 0;0 0 0 7])) then bugmes();quit;end
137  
138  
139  
140  
141 v=[];
142  
143 v(5)=int8(1);if or(v<>int8([0;0;0;0;1])) then bugmes();quit;end
144  
145 v(2)=int8(4);if or(v<>int8([0;4;0;0;1])) then bugmes();quit;end
146  
147  
148 v=uint16([1 2 3;4 5 6]);
149  
150 v(:,1)=uint16([4;1]);if or(v<>uint16([4 2 3;1 5 6])) then bugmes();quit;end
151  
152 v(:,[1 1])=uint16([4 5;1 2]);if or(v<>uint16([5 2 3;2 5 6])) then bugmes();quit;end
153  
154 v(:,[3 1])=uint16([4 5;1 2]);if or(v<>uint16([5 2 4;2 5 1])) then bugmes();quit;end
155  
156 v(:,[3 3 3 3])=uint16([4 5 6 7;1 2 3 4]);if or(v<>uint16([5 2 7;2 5 4])) then bugmes();quit;end
157  
158  
159 v=int8([1 2 3;4 5 6]);
160  
161 v(1,:)=int8([2 3 4]);if or(v<>int8([2 3 4;4 5 6])) then bugmes();quit;end
162  
163 v([1 1],:)=int8([2 3 4;4 5 6]);if or(v<>int8([4 5 6;4 5 6])) then bugmes();quit;end
164  
165 v([2 2 2 2],:)=int8([2 3 4;4 5 6;7 8 9;10 11 12]);
166  
167 if or(v<>int8([4 5 6;10 11 12])) then bugmes();quit;end
168  
169  
170 v=uint8([1 2 3]);
171  
172 v(2)=[];if or(v<>uint8([1 3])) then bugmes();quit;end
173  
174 v=uint8([1 2 3]);
175  
176 v([3 2])=[];if v<>uint8(1) then bugmes();quit;end
177  
178  
179 v=int8([1 2 3]');
180  
181 v(2)=[];if or(v<>int8([1 3]')) then bugmes();quit;end
182  
183 v=int8([1 2 3]');
184  
185 v([3 2])=[];if v<>int8(1) then bugmes();quit;end
186  
187  
188 v=int32([1 2 3;4 5 6]);
189  
190 v(1,:)=[];if or(v<>int32([4 5 6])) then bugmes();quit;end
191  
192 v=int32([1 2 3;4 5 6]);
193  
194 v(:,[3 2])=[];if or(v<>int32([1;4])) then bugmes();quit;end
195  
196  
197 //concatenations
198  
199  
200 x1=int8(1);x2=int8(7);
201  
202 if or([x1 x2]<>int8([1 7])) then bugmes();quit;end
203  
204 if or([x1;x2]<>int8([1;7])) then bugmes();quit;end
205  
206 if or([x1 []]<>int8([1])) then bugmes();quit;end
207  
208 if or([x1;[]]<>int8([1])) then bugmes();quit;end
209  
210 if or([[] x2]<>int8([7])) then bugmes();quit;end
211  
212 if or([[];x2]<>int8([7])) then bugmes();quit;end
213  
214 [x1,x2]=([x1 x2 x1 x2],[x2 x2 x1 x1]);
215  
216  
217 if or([x1 x2]<>int8([1 7 1 7 7 7 1 1])) then bugmes();quit;end
218  
219 if or([x1;x2]<>int8([1 7 1 7;7 7 1 1])) then bugmes();quit;end
220  
221 if or([x1 []]<>int8([1 7 1 7])) then bugmes();quit;end
222  
223 if or([x1;[]]<>int8([1 7 1 7])) then bugmes();quit;end
224  
225 if or([[] x2]<>int8([7 7 1 1])) then bugmes();quit;end
226  
227 if or([[];x2]<>int8([7 7 1 1])) then bugmes();quit;end
228  
229  
230 n=300;x1=uint16(1:n);
231  
232 if or([x1 x1]<>uint16([1:n 1:n])) then bugmes();quit;end
233  
234 if or([x1;x1]<>uint16([1:n;1:n])) then bugmes();quit;end
235  
236  
237 //additions soustractions
238  
239 X1=1;X2=7;x1=int8(X1);x2=int8(X2);
240  
241 if or(x1+x2<>int8(X1+X2)) then bugmes();quit;end
242  
243 if or(x1-x2<>int8(X1-X2)) then bugmes();quit;end
244  
245 X1=1:10;x1=int8(X1);
246  
247 if or(x1+x2<>int8(X1+X2)) then bugmes();quit;end
248  
249 if or(x1-x2<>int8(X1-X2)) then bugmes();quit;end
250  
251 X2=2:11;x2=int8(X2);
252  
253 if or(x1+x2<>int8(X1+X2)) then bugmes();quit;end
254  
255 if or(x1-x2<>int8(X1-X2)) then bugmes();quit;end
256  
257 if or(-x1<>int8(-(1:10))) then bugmes();quit;end
258  
259  
260 X2=[];x2=[]
261  x2  =
262  
263      []
264  
265 if or(x1+x2<>int8(X1+X2)) then bugmes();quit;end
266  
267 if or(x1-x2<>int8(X1-X2)) then bugmes();quit;end
268  
269 if or(x2+x1<>int8(X2+X1)) then bugmes();quit;end
270  
271 if or(x2-x1<>int8(X2-X1)) then bugmes();quit;end
272  
273 //multiplication
274  
275 X1=1;X2=7;x1=int8(X1);x2=int8(X2);
276  
277 if or(x1*x2<>int8(X1*X2)) then bugmes();quit;end
278  
279 if or(x1.*x2<>int8(X1.*X2)) then bugmes();quit;end
280  
281 X1=1:10;x1=int8(X1);
282  
283 if or(x1*x2<>int8(X1*X2)) then bugmes();quit;end
284  
285 if or(x2*x1<>int8(X2*X1)) then bugmes();quit;end
286  
287  
288 if or(x1.*x2<>int8(X1.*X2)) then bugmes();quit;end
289  
290 if or(x2.*x1<>int8(X2.*X1)) then bugmes();quit;end
291  
292 X2=-(1:10);x2=int8(X2);
293  
294 if or(x1.*x2<>int8(X1.*X2)) then bugmes();quit;end
295  
296 if or(x1'*x2<>int8(X1'*X2)) then bugmes();quit;end
297  
298 if or(x1*x2'<>int8(X1*X2')) then bugmes();quit;end
299  
300  
301 // comparaisons
302  
303 X1=1;X2=7;x1=int8(X1);x2=int8(X2);
304  
305 if or((x1>x2)<>(X1>X2)) then bugmes();quit;end
306  
307 if or((x1>=x2)<>(X1>=X2)) then bugmes();quit;end
308  
309 if or((x1<x2)<>(X1<X2)) then bugmes();quit;end
310  
311 if or((x1<=x2)<>(X1<=X2)) then bugmes();quit;end
312  
313 if or((x1<>x2)<>(X1<>X2)) then bugmes();quit;end
314  
315 X1=1:10;x1=int8(X1);
316  
317 if or((x1>x2)<>(X1>X2)) then bugmes();quit;end
318  
319 if or((x1>=x2)<>(X1>=X2)) then bugmes();quit;end
320  
321 if or((x1<x2)<>(X1<X2)) then bugmes();quit;end
322  
323 if or((x1<=x2)<>(X1<=X2)) then bugmes();quit;end
324  
325 if or((x1<>x2)<>(X1<>X2)) then bugmes();quit;end
326  
327  
328 X2=2:11;x2=int8(X2);
329  
330 if or((x1>x2)<>(X1>X2)) then bugmes();quit;end
331  
332 if or((x1>=x2)<>(X1>=X2)) then bugmes();quit;end
333  
334 if or((x1<x2)<>(X1<X2)) then bugmes();quit;end
335  
336 if or((x1<=x2)<>(X1<=X2)) then bugmes();quit;end
337  
338 if or((x1<>x2)<>(X1<>X2)) then bugmes();quit;end
339  
340  
341 X1=1;x1=int8(X1);
342  
343 if or((x1>x2)<>(X1>X2)) then bugmes();quit;end
344  
345 if or((x1>=x2)<>(X1>=X2)) then bugmes();quit;end
346  
347 if or((x1<x2)<>(X1<X2)) then bugmes();quit;end
348  
349 if or((x1<=x2)<>(X1<=X2)) then bugmes();quit;end
350  
351 if or((x1<>x2)<>(X1<>X2)) then bugmes();quit;end
352  
353  
354 //division
355  
356 X1=1;X2=7;x1=int8(X1);x2=int8(X2);
357  
358 if or(x1/x2<>int8(0)) then bugmes();quit;end
359  
360 if or(x2/x1<>int8(7)) then bugmes();quit;end
361  
362 if or(x1\x2<>int8(7)) then bugmes();quit;end
363  
364 if or(x2\x1<>int8(0)) then bugmes();quit;end
365  
366 if or(x1./x2<>int8(0)) then bugmes();quit;end
367  
368 if or(x2./x1<>int8(7)) then bugmes();quit;end
369  
370 if or(x1.\x2<>int8(7)) then bugmes();quit;end
371  
372 if or(x2.\x1<>int8(0)) then bugmes();quit;end
373  
374  
375 X1=1:10;x1=int8(X1);
376  
377 if or(x1/x2<>int8([0 0 0 0 0 0 1 1 1 1])) then bugmes();quit;end
378  
379 //if or(x2/x1<>int8([7 3 2 1 1 1 1 0 0 0])) then bugmes();quit;end
380  
381 if or(x1./x2<>int8([0 0 0 0 0 0 1 1 1 1])) then bugmes();quit;end
382  
383 if or(x2./x1<>int8([7 3 2 1 1 1 1 0 0 0])) then bugmes();quit;end
384  
385 //if or(x1\x2<>int8([0 0 0 0 0 0 1 1 1 1])) then bugmes();quit;end
386  
387 if or(x1.\x2<>int8([7 3 2 1 1 1 1 0 0 0])) then bugmes();quit;end
388  
389 if or(x2\x1<> int8([0 0 0 0 0 0 1 1 1 1])) then bugmes();quit;end
390  
391 if or(x2.\x1<>int8([0 0 0 0 0 0 1 1 1 1])) then bugmes();quit;end
392  
393  
394 X2=-(1:10);x2=int8(X2);
395  
396 if or(x1./x2<>int8(-ones(1,10))) then bugmes();quit;end
397  
398 if or(x1.\x2<>int8(-ones(1,10))) then bugmes();quit;end
399  
400 // puissance
401  
402  
403  
404 X1=2;X2=3;x1=int8(X1);x2=int8(X2);
405  
406 if or(x1^x2<>int8(X1^X2)) then bugmes();quit;end
407  
408 if or(x1.^x2<>int8(X1.^X2)) then bugmes();quit;end
409  
410 X1=1:5;x1=int8(X1);
411  
412 if or(x1^x2<>int8(X1^X2)) then bugmes();quit;end
413  
414 if or(x1.^x2<>int8(X1.^X2)) then bugmes();quit;end
415  
416 X1=2;x1=int8(X1);X2=(1:3);x2=int8(X2);
417  
418 if or(x1^x2<>int8(X1^X2)) then bugmes();quit;end
419  
420 if or(x1.^x2<>int8(X1.^X2)) then bugmes();quit;end
421  
422 X1=2:4;x1=int8(X1);
423  
424 //if or(x1.^x2<>int8(X1.^X2)) then bugmes();quit;end
425  
426  
427 //kronecker
428  
429 X1=2;X2=3;x1=int8(X1);x2=int8(X2);
430  
431 if or(x1.*.x2<>int8(X1.*.X2)) then bugmes();quit;end
432  
433 X1=1:5;x1=int8(X1);
434  
435 if or(x1.*.x2<>int8(X1.*.X2)) then bugmes();quit;end
436  
437 X1=2;x1=int8(X1);X2=(1:3);x2=int8(X2);
438  
439 if or(x1.*.x2<>int8(X1.*.X2)) then bugmes();quit;end
440  
441 X1=(1:5)';x1=int8(X1);
442  
443 if or(x1.*.x2<>int8(X1.*.X2)) then bugmes();quit;end
444  
445  
446 //sum
447  
448 X=round(10*rand(1,30));
449  
450 deff('y=INT(x)','y=int16(x)')
451  
452 x=INT(X);
453  
454 if or(sum(x)<>INT(sum(X))) then bugmes();quit;end
455  
456 if or(sum(x')<>INT(sum(X'))) then bugmes();quit;end
457  
458 if or(cumsum(x)<>INT(cumsum(X))) then bugmes();quit;end
459  
460 if or(cumsum(x')<>INT(cumsum(X'))) then bugmes();quit;end
461  
462 deff('y=INT(x)','y=uint16(x)')
463 Warning :redefining function: INT                     
464  
465  
466 x=INT(X);
467  
468 if or(sum(x)<>INT(sum(X))) then bugmes();quit;end
469  
470 if or(sum(x')<>INT(sum(X'))) then bugmes();quit;end
471  
472 if or(cumsum(x)<>INT(cumsum(X))) then bugmes();quit;end
473  
474 if or(cumsum(x')<>INT(cumsum(X'))) then bugmes();quit;end
475  
476 deff('y=INT(x)','y=uint8(x)')
477 Warning :redefining function: INT                     
478  
479  
480 x=INT(X);
481  
482 if or(sum(x)<>INT(sum(X))) then bugmes();quit;end
483  
484 if or(sum(x')<>INT(sum(X'))) then bugmes();quit;end
485  
486 if or(cumsum(x)<>INT(cumsum(X))) then bugmes();quit;end
487  
488 if or(cumsum(x')<>INT(cumsum(X'))) then bugmes();quit;end
489  
490 deff('y=INT(x)','y=int8(x)')
491 Warning :redefining function: INT                     
492  
493  
494 x=INT(X);
495  
496 if or(sum(x)<>INT(sum(X))) then bugmes();quit;end
497  
498 if or(sum(x')<>INT(sum(X'))) then bugmes();quit;end
499  
500 if or(cumsum(x)<>INT(cumsum(X))) then bugmes();quit;end
501  
502 if or(cumsum(x')<>INT(cumsum(X'))) then bugmes();quit;end
503  
504 X=round(10*rand(20,30));
505  
506 x=INT(X);
507  
508 if or(sum(x,1)<>INT(sum(X,1))) then bugmes();quit;end
509  
510 if or(sum(x',1)<>INT(sum(X',1))) then bugmes();quit;end
511  
512 if or(cumsum(x,1)<>INT(cumsum(X,1))) then bugmes();quit;end
513  
514 if or(cumsum(x',1)<>INT(cumsum(X',1))) then bugmes();quit;end
515  
516 deff('y=INT(x)','y=uint16(x)')
517 Warning :redefining function: INT                     
518  
519  
520 x=INT(X);
521  
522 if or(sum(x,1)<>INT(sum(X,1))) then bugmes();quit;end
523  
524 if or(sum(x',1)<>INT(sum(X',1))) then bugmes();quit;end
525  
526 if or(cumsum(x,1)<>INT(cumsum(X,1))) then bugmes();quit;end
527  
528 if or(cumsum(x',1)<>INT(cumsum(X',1))) then bugmes();quit;end
529  
530 deff('y=INT(x)','y=uint8(x)')
531 Warning :redefining function: INT                     
532  
533  
534 x=INT(X);
535  
536 if or(sum(x,1)<>INT(sum(X,1))) then bugmes();quit;end
537  
538 if or(sum(x',1)<>INT(sum(X',1))) then bugmes();quit;end
539  
540 if or(cumsum(x,1)<>INT(cumsum(X,1))) then bugmes();quit;end
541  
542 if or(cumsum(x',1)<>INT(cumsum(X',1))) then bugmes();quit;end
543  
544 deff('y=INT(x)','y=int8(x)')
545 Warning :redefining function: INT                     
546  
547  
548 x=INT(X);
549  
550 if or(sum(x,1)<>INT(sum(X,1))) then bugmes();quit;end
551  
552 if or(sum(x',1)<>INT(sum(X',1))) then bugmes();quit;end
553  
554 if or(cumsum(x,1)<>INT(cumsum(X,1))) then bugmes();quit;end
555  
556 if or(cumsum(x',1)<>INT(cumsum(X',1))) then bugmes();quit;end
557  
558  
559 x=INT(X);
560  
561 if or(sum(x,'c')<>INT(sum(X,'c'))) then bugmes();quit;end
562  
563 if or(sum(x','c')<>INT(sum(X','c'))) then bugmes();quit;end
564  
565 if or(cumsum(x,'c')<>INT(cumsum(X,'c'))) then bugmes();quit;end
566  
567 if or(cumsum(x','c')<>INT(cumsum(X','c'))) then bugmes();quit;end
568  
569 deff('y=INT(x)','y=uint16(x)')
570 Warning :redefining function: INT                     
571  
572  
573 x=INT(X);
574  
575 if or(sum(x,'c')<>INT(sum(X,'c'))) then bugmes();quit;end
576  
577 if or(sum(x','c')<>INT(sum(X','c'))) then bugmes();quit;end
578  
579 if or(cumsum(x,'c')<>INT(cumsum(X,'c'))) then bugmes();quit;end
580  
581 if or(cumsum(x','c')<>INT(cumsum(X','c'))) then bugmes();quit;end
582  
583 deff('y=INT(x)','y=uint8(x)')
584 Warning :redefining function: INT                     
585  
586  
587 x=INT(X);
588  
589 if or(sum(x,'c')<>INT(sum(X,'c'))) then bugmes();quit;end
590  
591 if or(sum(x','c')<>INT(sum(X','c'))) then bugmes();quit;end
592  
593 if or(cumsum(x,'c')<>INT(cumsum(X,'c'))) then bugmes();quit;end
594  
595 if or(cumsum(x','c')<>INT(cumsum(X','c'))) then bugmes();quit;end
596  
597 deff('y=INT(x)','y=int8(x)')
598 Warning :redefining function: INT                     
599  
600  
601 x=INT(X);
602  
603 if or(sum(x,'c')<>INT(sum(X,'c'))) then bugmes();quit;end
604  
605 if or(sum(x','c')<>INT(sum(X','c'))) then bugmes();quit;end
606  
607 if or(cumsum(x,'c')<>INT(cumsum(X,'c'))) then bugmes();quit;end
608  
609 if or(cumsum(x','c')<>INT(cumsum(X','c'))) then bugmes();quit;end
610  
611  
612 //diag triu tril
613  
614 deff('y=INT(x)','y=int16(x)')
615 Warning :redefining function: INT                     
616  
617  
618  
619 X=round(10*rand(1,30));
620  
621 x=INT(X);
622  
623  
624 if or(diag(x)<>diag(X)) then bugmes();quit;end
625  
626 if or(diag(x,2)<>diag(X,2)) then bugmes();quit;end
627  
628 if or(diag(x,-2)<>diag(X,-2)) then bugmes();quit;end
629  
630  
631 if or(triu(x)<>triu(X)) then bugmes();quit;end
632  
633 if or(triu(x,2)<>triu(X,2)) then bugmes();quit;end
634  
635 if or(triu(x,-2)<>triu(X,-2)) then bugmes();quit;end
636  
637  
638 if or(tril(x)<>tril(X)) then bugmes();quit;end
639  
640 if or(tril(x,2)<>tril(X,2)) then bugmes();quit;end
641  
642 if or(tril(x,-2)<>tril(X,-2)) then bugmes();quit;end
643  
644  
645 X=round(10*rand(2,30));
646  
647 x=INT(X);
648  
649  
650 if or(diag(x)<>diag(X)) then bugmes();quit;end
651  
652 if or(diag(x,2)<>diag(X,2)) then bugmes();quit;end
653  
654 if or(diag(x,-2)<>diag(X,-2)) then bugmes();quit;end
655  
656  
657 if or(triu(x)<>triu(X)) then bugmes();quit;end
658  
659 if or(triu(x,2)<>triu(X,2)) then bugmes();quit;end
660  
661 if or(triu(x,-2)<>triu(X,-2)) then bugmes();quit;end
662  
663  
664 if or(tril(x)<>tril(X)) then bugmes();quit;end
665  
666 if or(tril(x,2)<>tril(X,2)) then bugmes();quit;end
667  
668 if or(tril(x,-2)<>tril(X,-2)) then bugmes();quit;end
669  
670  
671 deff('y=INT(x)','y=uint8(x)')
672 Warning :redefining function: INT                     
673  
674  
675 X=round(10*rand(1,30));
676  
677 x=INT(X);
678  
679  
680 if or(diag(x)<>diag(X)) then bugmes();quit;end
681  
682 if or(diag(x,2)<>diag(X,2)) then bugmes();quit;end
683  
684 if or(diag(x,-2)<>diag(X,-2)) then bugmes();quit;end
685  
686  
687 if or(triu(x)<>triu(X)) then bugmes();quit;end
688  
689 if or(triu(x,2)<>triu(X,2)) then bugmes();quit;end
690  
691 if or(triu(x,-2)<>triu(X,-2)) then bugmes();quit;end
692  
693  
694 if or(tril(x)<>tril(X)) then bugmes();quit;end
695  
696 if or(tril(x,2)<>tril(X,2)) then bugmes();quit;end
697  
698 if or(tril(x,-2)<>tril(X,-2)) then bugmes();quit;end
699  
700  
701 X=round(10*rand(2,30));
702  
703 x=INT(X);
704  
705  
706 if or(diag(x)<>diag(X)) then bugmes();quit;end
707  
708 if or(diag(x,2)<>diag(X,2)) then bugmes();quit;end
709  
710 if or(diag(x,-2)<>diag(X,-2)) then bugmes();quit;end
711  
712  
713 if or(triu(x)<>triu(X)) then bugmes();quit;end
714  
715 if or(triu(x,2)<>triu(X,2)) then bugmes();quit;end
716  
717 if or(triu(x,-2)<>triu(X,-2)) then bugmes();quit;end
718  
719  
720 if or(tril(x)<>tril(X)) then bugmes();quit;end
721  
722 if or(tril(x,2)<>tril(X,2)) then bugmes();quit;end
723  
724 if or(tril(x,-2)<>tril(X,-2)) then bugmes();quit;end
725  
726  
727 // save load
728  
729 deff('y=INT(x)','y=uint8(x)')
730 Warning :redefining function: INT                     
731  
732  
733 X=round(10*rand(1,30));
734  
735 x=INT(X);
736  
737  
738 save(TMPDIR+'/foo',x)
739  
740 clear x;load(TMPDIR+'/foo');if or(x<>INT(X)) then bugmes();quit;end
741  
742  
743 x=list(1,x,2);save(TMPDIR+'/foo',x)
744  
745 clear x;load(TMPDIR+'/foo');if or(x<>list(1,INT(X),2)) then bugmes();quit;end
746  
747  
748 deff('y=INT(x)','y=int32(x)')
749 Warning :redefining function: INT                     
750  
751  
752 X=round(10*rand(1,30));
753  
754 x=INT(X);
755  
756  
757 save(TMPDIR+'/foo',x)
758  
759 clear x;load(TMPDIR+'/foo');if or(x<>INT(X)) then bugmes();quit;end
760  
761  
762 x=list(1,x,2);save(TMPDIR+'/foo',x)
763  
764 clear x;load(TMPDIR+'/foo');if or(x<>list(1,INT(X),2)) then bugmes();quit;end
765  
766  
767  
768 //abs
769  
770 deff('y=INT(x)','y=int8(x)')
771 Warning :redefining function: INT                     
772  
773  
774 X=round(10*rand(1,30))-5;
775  
776 x=INT(X);
777  
778  
779 if or(abs(x)<>INT(abs(X))) then bugmes();quit;end
780  
781  
782 deff('y=INT(x)','y=int16(x)')
783 Warning :redefining function: INT                     
784  
785  
786 X=round(10*rand(1,30))-5;
787  
788 x=INT(X);
789  
790  
791 if or(abs(x)<>INT(abs(X))) then bugmes();quit;end
792  
793  
794 //matrix
795  
796 deff('y=INT(x)','y=int8(x)')
797 Warning :redefining function: INT                     
798  
799  
800 X=round(10*rand(1,30))-5;
801  
802 x=INT(X);
803  
804  
805 if or(matrix(x,10,-1)<>INT(matrix(X,10,-1))) then bugmes();quit;end
806  
807 if or(matrix(x,10,3)<>INT(matrix(X,10,3))) then bugmes();quit;end
808  
809 if or(matrix(x,-1,3)<>INT(matrix(X,-1,3))) then bugmes();quit;end
810  
811  
812 deff('y=INT(x)','y=uint8(x)')
813 Warning :redefining function: INT                     
814  
815  
816 X=round(10*rand(1,30))-5;
817  
818 x=INT(X);
819  
820  
821 if or(matrix(x,10,-1)<>INT(matrix(X,10,-1))) then bugmes();quit;end
822  
823 if or(matrix(x,10,3)<>INT(matrix(X,10,3))) then bugmes();quit;end
824  
825 if or(matrix(x,-1,3)<>INT(matrix(X,-1,3))) then bugmes();quit;end
826  
827  
828 //max min
829  
830 deff('y=INT(x)','y=int8(x)')
831 Warning :redefining function: INT                     
832  
833  
834 X=round(10*rand(2,30))-5;
835  
836 Y=ones(2,30);
837  
838 x=INT(X);
839  
840 y=INT(Y);
841  
842 if or(max(x)<>INT(max(X))) then bugmes();quit;end
843  
844 if or(max(x,'r')<>INT(max(X,'r'))) then bugmes();quit;end
845  
846 if or(max(x,'c')<>INT(max(X,'c'))) then bugmes();quit;end
847  
848 if or(max(x,INT(2))<>INT(max(X,2))) then bugmes();quit;end
849  
850 if or(max(x,y)<>INT(max(X,Y))) then bugmes();quit;end
851  
852  
853 if or(min(x)<>INT(min(X))) then bugmes();quit;end
854  
855 if or(min(x,'r')<>INT(min(X,'r'))) then bugmes();quit;end
856  
857 if or(min(x,'c')<>INT(min(X,'c'))) then bugmes();quit;end
858  
859 if or(min(x,INT(2))<>INT(min(X,2))) then bugmes();quit;end
860  
861 if or(min(x,y)<>INT(min(X,Y))) then bugmes();quit;end
862  
863  
864  
865 a=[0 3 7];
866  
867 b=[1 2 7];
868  
869 A=[0 3 7 5;
870    1 2 0 2
871    8 9 3 1];
872  
873 types=['double','int32','uint32','int16','uint16','int8','uint8']
874  types  =
875  
876 !double  int32  uint32  int16  uint16  int8  uint8  !
877  
878  
879 // checking max(a,b)
880  
881 [mx,kx]=max(a,b);
882  
883 for t1=types
884   for t2=types
885     execstr('at='+t1+'(a); bt='+t2+'(b);')
886     [mt,kt]=max(at,bt);
887     if or(kt<>kx)|or(mx<>double(mt)) then
888       disp('max('+t1+','+t2+')'),pause
889     end
890   end   
891 end
892  
893  
894 // checking min(a,b)
895  
896 [mn,kn]=min(a,b);
897  
898 for t1=types
899   for t2=types
900     execstr('at='+t1+'(a); bt='+t2+'(b);')
901     [mt,kt]=min(at,bt);
902     if or(kt<>kn)|or(mn<>double(mt)) then
903       disp('min('+t1+','+t2+')'),pause
904     end
905   end   
906 end
907  
908  
909 // checking max(A)
910  
911 [mx,kx]=max(A)
912  kx  =
913  
914     3.    2.  
915  mx  =
916  
917     9.  
918  
919 for t1=types
920   execstr('At='+t1+'(A);')
921   [mt,kt]=max(At);
922   if or(kt<>kx)|or(mx<>double(mt)) then
923     disp('max('+t1+')'),pause
924   end
925 end
926  
927  
928 // checking min(A)
929  
930 [mx,kx]=min(A)
931  kx  =
932  
933     1.    1.  
934  mx  =
935  
936     0.  
937  
938 for t1=types
939   execstr('At='+t1+'(A);')
940   [mt,kt]=min(At);
941   if or(kt<>kx)|or(mx<>double(mt)) then
942     disp('min('+t1+')'),pause
943   end
944 end
945  
946  
947  
948 // checking max(A,'r')
949  
950 [mx,kx]=max(A,'r')
951  kx  =
952  
953     3.    3.    1.    1.  
954  mx  =
955  
956     8.    9.    7.    5.  
957  
958 for t1=types
959   execstr('At='+t1+'(A);')
960   [mt,kt]=max(At,'r');
961   if or(kt<>kx)|or(mx<>double(mt)) then
962     disp('max('+t1+',''r'')'),pause
963   end
964 end
965  
966  
967 // checking min(A,'r')
968  
969 [mx,kx]=min(A,'r')
970  kx  =
971  
972     1.    2.    2.    3.  
973  mx  =
974  
975     0.    2.    0.    1.  
976  
977 for t1=types
978   execstr('At='+t1+'(A);')
979   [mt,kt]=min(At,'r');
980   if or(kt<>kx)|or(mx<>double(mt)) then
981     disp('min('+t1+',''r'')'),pause
982   end
983 end
984  
985  
986 // checking max(A,'c')
987  
988 [mx,kx]=max(A,'c')
989  kx  =
990  
991     3.  
992     2.  
993     2.  
994  mx  =
995  
996     7.  
997     2.  
998     9.  
999  
1000 for t1=types
1001   execstr('At='+t1+'(A);')
1002   [mt,kt]=max(At,'c');
1003   if or(kt<>kx)|or(mx<>double(mt)) then
1004     disp('max('+t1+',''c'')'),pause
1005   end
1006 end
1007  
1008  
1009 // checking min(A,'c')
1010  
1011 [mx,kx]=min(A,'c')
1012  kx  =
1013  
1014     1.  
1015     3.  
1016     4.  
1017  mx  =
1018  
1019     0.  
1020     0.  
1021     1.  
1022  
1023 for t1=types
1024   execstr('At='+t1+'(A);')
1025   [mt,kt]=min(At,'c');
1026   if or(kt<>kx)|or(mx<>double(mt)) then
1027     disp('min('+t1+',''c'')'),pause
1028   end
1029 end
1030  
1031  
1032  
1033 //int32 int80... iconvert
1034