Fix test win64b: test_run('integer', intops')
[scilab.git] / scilab / modules / integer / tests / unit_tests / intops.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) ????-2008 - INRIA
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 funcprot(0);
8 //extractions
9 v=int8([1 2 3]);
10 assert_checkequal(v(2), int8(2));
11 assert_checkequal(v([1 3]), int8([1 3]));
12 assert_checkequal(v([3 3]), int8([3 3]));
13 assert_checkequal(v(:), int8([1 2 3]'));
14 assert_checkequal(v([]), []);
15 v=int32([1 2 3;4 5 6]);
16 assert_checktrue(v(2) == int8(4));
17 assert_checktrue(v([1 3]) == int8([1;2]));
18 assert_checktrue(v([3 3]) == int8([2;2]));
19 assert_checktrue(v(:) == int8([1;4;2;5;3;6]));
20 assert_checktrue(v([]) == []);
21 assert_checktrue(v(2,1) == int8(4));
22 assert_checktrue(v(1,[1 3]) == int8([1 3]));
23 assert_checktrue(v(1,[3 3]) == int8([3 3]));
24 assert_checktrue(v(1,:) == int8([1 2 3]));
25 assert_checktrue(v(:,2) == int8([2;5]));
26 assert_checktrue(v([1 1],:) == int8([1 2 3;1 2 3]));
27 assert_checktrue(v(:,[2 1]) == int8([2 1;5 4]));
28 assert_checktrue(v(1,1:$) == int8([1 2 3]));
29 assert_checktrue(v(1:$,2) == int8([2;5]));
30 assert_checktrue(v([1 1],1:$) == int8([1 2 3;1 2 3]));
31 assert_checktrue(v(1:$,[2 1]) == int8([2 1;5 4]));
32 //insertion
33 v = int8([1 2 3]);
34 v(2) = int8(3);
35 assert_checkequal(v, int8([1 3 3]));
36 v(4) = int8(-5);
37 assert_checkequal(v, int8([1 3 3 -5]));
38 v([1 4]) = int8([2 5]);
39 assert_checkequal(v, int8([2 3 3 5]));
40 v([1 1]) = int8([2 5]);
41 assert_checkequal(v, int8([5 3 3 5]));
42 v([1 1 1 1 1 1]) = int8([2 5 6 7 8 9]);
43 assert_checkequal(v, int8([9 3 3 5]));
44 v([4 2]) = int8([8 5]);
45 assert_checkequal(v, int8([9 5 3 8]));
46 v = uint16([1 2 3]);
47 v(2) = uint16(3);
48 assert_checkequal(v, uint16([1 3 3]));
49 v(4) = uint16(-5);
50 assert_checkequal(v, uint16([1 3 3 -5]));
51 v([1 4]) = uint16([2 5]);
52 assert_checkequal(v, uint16([2 3 3 5]));
53 v([1 1]) = uint16([2 5]);
54 assert_checkequal(v, uint16([5 3 3 5]));
55 v([1 1 1 1 1 1]) = uint16([2 5 6 7 8 9]);
56 assert_checkequal(v, uint16([9 3 3 5]));
57 v([4 2]) = uint16([8 5]);
58 assert_checkequal(v, uint16([9 5 3 8]));
59 v = uint8([1 2 3]);
60 v(2,4) = uint8(10);
61 assert_checkequal(v, uint8([1 2 3 0;0 0 0 10]));
62 v([2 2],4) = uint8([10;20]);
63 assert_checkequal(v, uint8([1 2 3 0;0 0 0 20]));
64 v([2 1],4) = uint8([10;20]);
65 assert_checkequal(v, uint8([1 2 3 20;0 0 0 10]));
66 v([2 2 2],4) = uint8([10;20;30]);
67 assert_checkequal(v, uint8([1 2 3 20;0 0 0 30]));
68 v = int32([1 2 3]);
69 v(2,4) = int32(10);
70 assert_checkequal(v, int32([1 2 3 0;0 0 0 10]));
71 v([2 2],4) = int32([10;20]);
72 assert_checkequal(v, int32([1 2 3 0;0 0 0 20]));
73 v([2 1],4) = int32([10;20]);
74 assert_checkequal(v, int32([1 2 3 20;0 0 0 10]));
75 v([2 2 2],4) = int32([10;20;30]);
76 assert_checkequal(v, int32([1 2 3 20;0 0 0 30]));
77 v = int16([1 2 3;0 0 10]);
78 v(1,[1 1 1 1]) = int16(1:4);
79 assert_checkequal(v, int16([4 2 3;0 0 10]));
80 v([2 2],[1 1 1 1]) = int16([1:4;2:5]);
81 assert_checkequal(v, int16([4 2 3;5 0 10]))
82  ans  =
83  
84   T  
85 v(3,4) = int16(7);
86 assert_checkequal(v, int16([4 2 3 0;5 0 10 0;0 0 0 7]))
87  ans  =
88  
89   T  
90 v = uint32([1 2 3;0 0 10]);
91 v(1,[1 1 1 1]) = uint32(1:4);
92 assert_checkequal(v, uint32([4 2 3;0 0 10]))
93  ans  =
94  
95   T  
96 v([2 2],[1 1 1 1]) = uint32([1:4;2:5]);
97 assert_checkequal(v, uint32([4 2 3;5 0 10]))
98  ans  =
99  
100   T  
101 v(3,4) = uint32(7);
102 assert_checkequal(v, uint32([4 2 3 0;5 0 10 0;0 0 0 7]))
103  ans  =
104  
105   T  
106 v = [];
107 v(5) = int8(1);
108 assert_checkequal(v, int8([0;0;0;0;1]));
109 v(2) = int8(4);
110 assert_checkequal(v, int8([0;4;0;0;1]))
111  ans  =
112  
113   T  
114 v = uint16([1 2 3;4 5 6]);
115 v(:,1) = uint16([4;1]);
116 assert_checkequal(v, uint16([4 2 3;1 5 6]));
117 v(:,[1 1]) = uint16([4 5;1 2]);
118 assert_checkequal(v, uint16([5 2 3;2 5 6]));
119 v(:,[3 1]) = uint16([4 5;1 2]);
120 assert_checkequal(v, uint16([5 2 4;2 5 1]))
121  ans  =
122  
123   T  
124 v(:,[3 3 3 3]) = uint16([4 5 6 7;1 2 3 4]);
125 assert_checkequal(v, uint16([5 2 7;2 5 4]))
126  ans  =
127  
128   T  
129 v = int8([1 2 3;4 5 6]);
130 v(1,:) = int8([2 3 4]);
131 assert_checkequal(v, int8([2 3 4;4 5 6]))
132  ans  =
133  
134   T  
135 v([1 1],:) = int8([2 3 4;4 5 6]);
136 assert_checkequal(v, int8([4 5 6;4 5 6]))
137  ans  =
138  
139   T  
140 v([2 2 2 2],:) = int8([2 3 4;4 5 6;7 8 9;10 11 12]);
141 assert_checkequal(v, int8([4 5 6;10 11 12]))
142  ans  =
143  
144   T  
145 v = uint8([1 2 3]);
146 v(2) = [];
147 assert_checkequal(v, uint8([1 3]));
148 v = uint8([1 2 3]);
149 v([3 2]) = [];
150 assert_checkequal(v, uint8(1));
151 v = int8([1 2 3]');
152 v(2) = [];
153 assert_checkequal(v, int8([1 3]'));
154 v = int8([1 2 3]');
155 v([3 2]) = [];
156 assert_checkequal(v, int8(1))
157  ans  =
158  
159   T  
160 v = int32([1 2 3;4 5 6]);
161 v(1,:) = [];
162 assert_checkequal(v, int32([4 5 6]));
163 v = int32([1 2 3;4 5 6]);
164 v(:,[3 2]) = [];
165 assert_checkequal(v, int32([1;4]));
166 //hidden empty index in insertion
167 a = int32([1 2;3 4]);
168 a_ref = a;
169 a(1,[%f %f]) = [];
170 assert_checkequal(a, a_ref);
171 a([%f %f],1) = [];
172 assert_checkequal(a, a_ref);
173 a([%f %f],[%f %f]) = [];
174 assert_checkequal(a, a_ref);
175 a = int8([1 2;3 4]);
176 a_ref = a;
177 a(1,[%f %f]) = [];
178 assert_checkequal(a, a_ref);
179 a([%f %f],1) = [];
180 assert_checkequal(a, a_ref);
181 a([%f %f],[%f %f]) = [];
182 assert_checkequal(a, a_ref);
183 //concatenations
184 x1 = int8(1);
185 x2 = int8(7);
186 assert_checkequal([x1 x2], int8([1 7]));
187 assert_checkequal([x1; x2], int8([1; 7]));
188 assert_checkequal([x1 []], int8(1));
189 assert_checkequal([x1; []], int8(1));
190 assert_checkequal([[], x2], int8(7));
191 assert_checkequal([[]; x2], int8(7));
192 [x1, x2] = ([x1 x2 x1 x2],[x2 x2 x1 x1]);
193 assert_checkequal([x1 x2], int8([1 7 1 7 7 7 1 1]));
194 assert_checkequal([x1; x2], int8([1 7 1 7; 7 7 1 1]));
195 assert_checkequal([x1 []], int8([1 7 1 7]));
196 assert_checkequal([x1; []], int8([1 7 1 7]));
197 assert_checkequal([[] x2], int8([7 7 1 1]));
198 assert_checkequal([[]; x2], int8([7 7 1 1]));
199 n = 300;
200 x1 = uint16(1:n);
201 assert_checkequal([x1 x1], uint16([1:n 1:n]));
202 assert_checkequal([x1; x1], uint16([1:n; 1:n]));
203 //additions soustractions
204 X1 = 1;X2 = 7;x1 = int8(X1);x2 = int8(X2);
205 assert_checkequal(x1+x2, int8(X1+X2));
206 assert_checkequal(x1-x2, int8(X1-X2));
207 X1 = 1:10; x1 = int8(X1);
208 assert_checkequal(x1+x2, int8(X1+X2));
209 assert_checkequal(x1-x2, int8(X1-X2));
210 X2 = 2:11; x2 = int8(X2);
211 assert_checkequal(x1+x2, int8(X1+X2));
212 assert_checkequal(x1-x2, int8(X1-X2));
213 assert_checkequal(-x1, int8(-X1));
214 X2 = []; x2 = [];
215 assert_checkequal(x1+x2, int8(X1+X2));
216 assert_checkequal(x1-x2, int8(X1-X2));
217 assert_checkequal(x2+x1, int8(X2+X1));
218 assert_checkequal(x2-x1, int8(X2-X1));
219 //multiplication
220 X1 = 1;X2 = 7;x1 = int8(X1);x2 = int8(X2);
221 assert_checkequal(x1 * x2, int8(X1 * X2));
222 assert_checkequal(x1 .* x2, int8(X1 .* X2));
223 X1 = 1:10; x1 = int8(X1);
224 assert_checkequal(x1 * x2, int8(X1 * X2));
225 assert_checkequal(x1 .* x2, int8(X1 .* X2));
226 assert_checkequal(x2 * x1, int8(X2 * X1));
227 assert_checkequal(x2 .* x1, int8(X2 .* X1));
228 X2 = -(1:10); x2 = int8(X2);
229 assert_checkequal(x1 .* x2, int8(X1 .* X2));
230 assert_checkequal(x1' * x2, int8(X1' * X2));
231 assert_checkequal(x1 * x2', int8(X1 * X2'));
232 // comparaisons
233 X1 = 1;X2 = 7;x1 = int8(X1);x2 = int8(X2);
234 assert_checkequal(x1>x2, X1>X2);
235 assert_checkequal(x1>=x2, X1>=X2);
236 assert_checkequal(x1<x2, X1<X2);
237 assert_checkequal(x1<=x2, X1<=X2);
238 assert_checkequal(x1<>x2, X1<>X2);
239 X1 = 1:10; x1 = int8(X1);
240 assert_checkequal(x1>x2, X1>X2);
241 assert_checkequal(x1>=x2, X1>=X2);
242 assert_checkequal(x1<x2, X1<X2);
243 assert_checkequal(x1<=x2, X1<=X2);
244 assert_checkequal(x1<>x2, X1<>X2);
245 X2 = 2:11;x2 = int8(X2);
246 assert_checkequal(x1>x2, X1>X2);
247 assert_checkequal(x1>=x2, X1>=X2);
248 assert_checkequal(x1<x2, X1<X2);
249 assert_checkequal(x1<=x2, X1<=X2);
250 assert_checkequal(x1<>x2, X1<>X2);
251 X1 = 1;x1 = int8(X1);
252 assert_checkequal(x1>x2, X1>X2);
253 assert_checkequal(x1>=x2, X1>=X2);
254 assert_checkequal(x1<x2, X1<X2);
255 assert_checkequal(x1<=x2, X1<=X2);
256 assert_checkequal(x1<>x2, X1<>X2);
257 //division
258 X1 = 1;X2 = 7;x1 = int8(X1);x2 = int8(X2);
259 assert_checkequal(x1/x2, int8(0));
260 assert_checkequal(x2/x1, int8(7));
261 assert_checkequal(x1\x2, int8(7));
262 assert_checkequal(x2\x1, int8(0));
263 assert_checkequal(x1./x2, int8(0));
264 assert_checkequal(x2./x1, int8(7));
265 assert_checkequal(x1.\x2, int8(7));
266 assert_checkequal(x2.\x1, int8(0));
267 X1 = 1:10; x1 = int8(X1);
268 assert_checkequal(x1/x2, int8([0 0 0 0 0 0 1 1 1 1]));
269 //if or(x2/x1<>int8([7 3 2 1 1 1 1 0 0 0])) then bugmes();quit;end
270 assert_checkequal(x1./x2, int8([0 0 0 0 0 0 1 1 1 1]));
271 assert_checkequal(x2./x1, int8([7 3 2 1 1 1 1 0 0 0]));
272 //if or(x1\x2<>int8([0 0 0 0 0 0 1 1 1 1])) then bugmes();quit;end
273 assert_checkequal(x1.\x2, int8([7 3 2 1 1 1 1 0 0 0]));
274 assert_checkequal(x2\x1, int8([0 0 0 0 0 0 1 1 1 1]));
275 assert_checkequal(x2.\x1, int8([0 0 0 0 0 0 1 1 1 1]));
276 X2 = -(1:10); x2 = int8(X2);
277 assert_checkequal(x1./x2, int8(-ones(1,10)));
278 assert_checkequal(x1.\x2, int8(-ones(1,10)));
279 // puissance
280 X1 = 2;X2 = 3;x1 = int8(X1);x2 = int8(X2);
281 assert_checkequal(x1^x2, int8(X1^X2));
282 assert_checkequal(x1.^x2, int8(X1.^X2));
283 X1 = 1:5; x1 = int8(X1);
284 assert_checkequal(x1.^x2, int8(X1.^X2));
285 //if or(x1^x2<>int8(X1^X2)) then bugmes();quit;end
286 X1 = 2;x1 = int8(X1);X2 = (1:3);x2 = int8(X2);
287 assert_checkequal(x1^x2, int8(X1^X2));
288 assert_checkequal(x1.^x2, int8(X1.^X2));
289 //X1=2:4;x1=int8(X1);
290 //if or(x1.^x2<>int8(X1.^X2)) then bugmes();quit;end
291 //kronecker
292 X1 = 2;X2 = 3;x1 = int8(X1);x2 = int8(X2);
293 assert_checkequal(x1.*.x2, int8(X1.*.X2));
294 X1 = 1:5;x1 = int8(X1);
295 assert_checkequal(x1.*.x2, int8(X1.*.X2));
296 X1 = 2;x1 = int8(X1);X2 = (1:3);x2 = int8(X2);
297 assert_checkequal(x1.*.x2, int8(X1.*.X2));
298 X1 = (1:5)';x1 = int8(X1);
299 assert_checkequal(x1.*.x2, int8(X1.*.X2));
300 //sum
301 X = round(10 * rand(1,30));
302 deff('y=INT(x)','y=int16(x)')
303 x = INT(X);
304 assert_checkequal(sum(x), INT(sum(X)));
305 assert_checkequal(sum(x'), INT(sum(X')));
306 assert_checkequal(cumsum(x), INT(cumsum(X)));
307 assert_checkequal(cumsum(x'), INT(cumsum(X')));
308 deff('y=INT(x)','y=uint16(x)')
309 x = INT(X);
310 assert_checkequal(sum(x), INT(sum(X)));
311 assert_checkequal(sum(x'), INT(sum(X')));
312 assert_checkequal(cumsum(x), INT(cumsum(X)));
313 assert_checkequal(cumsum(x'), INT(cumsum(X')));
314 deff('y=INT(x)','y=uint8(x)')
315 x = INT(X);
316 assert_checkequal(sum(x), INT(sum(X)));
317 assert_checkequal(sum(x'), INT(sum(X')));
318 assert_checkequal(cumsum(x), INT(cumsum(X)));
319 assert_checkequal(cumsum(x'), INT(cumsum(X')));
320 deff('y=INT(x)','y=int8(x)')
321 x = INT(X);
322 assert_checkequal(sum(x), INT(sum(X)));
323 assert_checkequal(sum(x'), INT(sum(X')));
324 assert_checkequal(cumsum(x), INT(cumsum(X)));
325 assert_checkequal(cumsum(x'), INT(cumsum(X')));
326 X = round(10*rand(20,30));
327 x = INT(X);
328 assert_checkequal(sum(x, 1), INT(sum(X, 1)));
329 assert_checkequal(sum(x', 1), INT(sum(X', 1)));
330 assert_checkequal(cumsum(x, 1), INT(cumsum(X, 1)));
331 assert_checkequal(cumsum(x', 1), INT(cumsum(X', 1)));
332 deff('y=INT(x)','y=uint16(x)')
333 x = INT(X);
334 assert_checkequal(sum(x, 1), INT(sum(X, 1)));
335 assert_checkequal(sum(x', 1), INT(sum(X', 1)));
336 assert_checkequal(cumsum(x, 1), INT(cumsum(X, 1)));
337 assert_checkequal(cumsum(x', 1), INT(cumsum(X', 1)));
338 deff('y=INT(x)','y=uint8(x)')
339 x = INT(X);
340 assert_checkequal(sum(x, 1), INT(sum(X, 1)));
341 assert_checkequal(sum(x', 1), INT(sum(X', 1)));
342 assert_checkequal(cumsum(x, 1), INT(cumsum(X, 1)));
343 assert_checkequal(cumsum(x', 1), INT(cumsum(X', 1)));
344 deff('y=INT(x)','y=int8(x)')
345 x = INT(X);
346 assert_checkequal(sum(x, 1), INT(sum(X, 1)));
347 assert_checkequal(sum(x', 1), INT(sum(X', 1)));
348 assert_checkequal(cumsum(x, 1), INT(cumsum(X, 1)));
349 assert_checkequal(cumsum(x', 1), INT(cumsum(X', 1)));
350 x = INT(X);
351 assert_checkequal(sum(x, "c"), INT(sum(X, "c")));
352 assert_checkequal(sum(x', "c"), INT(sum(X', "c")));
353 assert_checkequal(cumsum(x, "c"), INT(cumsum(X, "c")));
354 assert_checkequal(cumsum(x', "c"), INT(cumsum(X', "c")));
355 deff('y=INT(x)','y=uint16(x)')
356 x = INT(X);
357 assert_checkequal(sum(x, "c"), INT(sum(X, "c")));
358 assert_checkequal(sum(x', "c"), INT(sum(X', "c")));
359 assert_checkequal(cumsum(x, "c"), INT(cumsum(X, "c")));
360 assert_checkequal(cumsum(x', "c"), INT(cumsum(X', "c")));
361 deff('y=INT(x)','y=uint8(x)')
362 x = INT(X);
363 assert_checkequal(sum(x, "c"), INT(sum(X, "c")));
364 assert_checkequal(sum(x', "c"), INT(sum(X', "c")));
365 assert_checkequal(cumsum(x, "c"), INT(cumsum(X, "c")));
366 assert_checkequal(cumsum(x', "c"), INT(cumsum(X', "c")));
367 deff('y=INT(x)','y=int8(x)')
368 x = INT(X);
369 assert_checkequal(sum(x, "c"), INT(sum(X, "c")));
370 assert_checkequal(sum(x', "c"), INT(sum(X', "c")));
371 assert_checkequal(cumsum(x, "c"), INT(cumsum(X, "c")));
372 assert_checkequal(cumsum(x', "c"), INT(cumsum(X', "c")));
373 //diag triu tril
374 deff('y=INT(x)','y=int16(x)')
375 X = round(10*rand(1,30));
376 x = INT(X);
377 assert_checktrue(diag(x) == diag(X));
378 assert_checktrue(diag(x, 2) == diag(X, 2));
379 assert_checktrue(diag(x, -2) == diag(X, -2));
380 assert_checktrue(triu(x) == triu(X));
381 assert_checktrue(triu(x, 2) == triu(X, 2));
382 assert_checktrue(triu(x, -2) == triu(X, -2));
383 assert_checktrue(tril(x) == tril(X));
384 assert_checktrue(tril(x, 2) == tril(X, 2));
385 assert_checktrue(tril(x, -2) == tril(X, -2));
386 X = round(10*rand(2,30));
387 x = INT(X);
388 assert_checktrue(diag(x) == diag(X));
389 assert_checktrue(diag(x, 2) == diag(X, 2));
390 assert_checktrue(diag(x, -2) == diag(X, -2));
391 assert_checktrue(triu(x) == triu(X));
392 assert_checktrue(triu(x, 2) == triu(X, 2));
393 assert_checktrue(triu(x, -2) == triu(X, -2));
394 assert_checktrue(tril(x) == tril(X));
395 assert_checktrue(tril(x, 2) == tril(X, 2));
396 assert_checktrue(tril(x, -2) == tril(X, -2));
397 deff('y=INT(x)','y=uint8(x)')
398 X = round(10*rand(1,30));
399 x = INT(X);
400 assert_checktrue(diag(x) == diag(X));
401 assert_checktrue(diag(x, 2) == diag(X, 2));
402 assert_checktrue(diag(x, -2) == diag(X, -2));
403 assert_checktrue(triu(x) == triu(X));
404 assert_checktrue(triu(x, 2) == triu(X, 2));
405 assert_checktrue(triu(x, -2) == triu(X, -2));
406 assert_checktrue(tril(x) == tril(X));
407 assert_checktrue(tril(x, 2) == tril(X, 2));
408 assert_checktrue(tril(x, -2) == tril(X, -2));
409 X = round(10*rand(2,30));
410 x = INT(X);
411 assert_checktrue(diag(x) == diag(X));
412 assert_checktrue(diag(x, 2) == diag(X, 2));
413 assert_checktrue(diag(x, -2) == diag(X, -2));
414 assert_checktrue(triu(x) == triu(X));
415 assert_checktrue(triu(x, 2) == triu(X, 2));
416 assert_checktrue(triu(x, -2) == triu(X, -2));
417 assert_checktrue(tril(x) == tril(X));
418 assert_checktrue(tril(x, 2) == tril(X, 2));
419 assert_checktrue(tril(x, -2) == tril(X, -2));
420 // save load
421 deff('y=INT(x)','y=uint8(x)')
422 X = round(10*rand(1,30));
423 x = INT(X);
424 save(TMPDIR+'/foo','x')
425 clear x;
426 load(TMPDIR+'/foo');
427 assert_checkequal(x, INT(X));
428 x=list(1,x,2);save(TMPDIR+'/foo','x')
429 clear x;
430 load(TMPDIR+'/foo');
431 assert_checkequal(x, list(1, INT(X), 2));
432 deff('y=INT(x)','y=int32(x)')
433 X = round(10*rand(1,30));
434 x = INT(X);
435 save(TMPDIR+'/foo','x')
436 clear x;
437 load(TMPDIR+'/foo');
438 assert_checkequal(x, INT(X));
439 x=list(1,x,2);save(TMPDIR+'/foo','x')
440 clear x;
441 load(TMPDIR+'/foo');
442 assert_checkequal(x, list(1, INT(X), 2));
443 //abs
444 deff('y=INT(x)','y=int8(x)')
445 X = round(10*rand(1,30))-5;
446 x = INT(X);
447 assert_checkequal(abs(x), INT(abs(X)));
448 deff('y=INT(x)','y=int16(x)')
449 X = round(10*rand(1,30))-5;
450 x = INT(X);
451 assert_checkequal(abs(x), INT(abs(X)));
452 //matrix
453 deff('y=INT(x)','y=int8(x)')
454 X = round(10*rand(1,30))-5;
455 x = INT(X);
456 assert_checkequal(matrix(x,10,-1), INT(matrix(X,10,-1)));
457 assert_checkequal(matrix(x,10,3), INT(matrix(X,10,3)));
458 assert_checkequal(matrix(x,-1,3), INT(matrix(X,-1,3)));
459 deff('y=INT(x)','y=uint8(x)')
460 X = round(10*rand(1,30))-5;
461 x = INT(X);
462 assert_checkequal(matrix(x,10,-1), INT(matrix(X,10,-1)));
463 assert_checkequal(matrix(x,10,3), INT(matrix(X,10,3)));
464 assert_checkequal(matrix(x,-1,3), INT(matrix(X,-1,3)));
465 //max min
466 deff('y=INT(x)','y=int8(x)')
467 X = round(10*rand(2,30))-5;
468 Y = ones(2,30);
469 x = INT(X);
470 y = INT(Y);
471 assert_checkequal(max(x), INT(max(X)));
472 assert_checkequal(max(x, "r"), INT(max(X, "r")));
473 assert_checkequal(max(x, "c"), INT(max(X, "c")));
474 assert_checkequal(max(x, INT(2)), INT(max(X, 2)));
475 assert_checkequal(max(x, y), INT(max(X, Y)));
476 assert_checkequal(min(x), INT(min(X)));
477 assert_checkequal(min(x, "r"), INT(min(X, "r")));
478 assert_checkequal(min(x, "c"), INT(min(X, "c")));
479 assert_checkequal(min(x, INT(2)), INT(min(X, 2)));
480 assert_checkequal(min(x, y), INT(min(X, Y)));
481 a = [0 3 7];
482 b = [1 2 7];
483 A = [0 3 7 5;
484    1 2 0 2
485    8 9 3 1];
486 types=['double','int32','uint32','int16','uint16','int8','uint8'];
487 // checking max(a,b)
488 [mx, kx] = max(a, b);
489 for t1 = types
490   for t2 = types
491     execstr('at='+t1+'(a); bt='+t2+'(b);')
492     [mt, kt] = max(at, bt);
493     if or(kt<>kx)|or(mx<>double(mt)) then 
494       disp('max('+t1+','+t2+')'),pause
495     end
496   end   
497 end
498 // checking min(a,b)
499 [mn,kn]=min(a,b);
500 for t1=types
501   for t2=types
502     execstr('at='+t1+'(a); bt='+t2+'(b);')
503     [mt,kt]=min(at,bt);
504     if or(kt<>kn)|or(mn<>double(mt)) then 
505       disp('min('+t1+','+t2+')'),pause
506     end
507   end   
508 end
509 // checking max(A)
510 [mx,kx]=max(A);
511 for t1=types
512   execstr('At='+t1+'(A);')
513   [mt,kt]=max(At);
514   if or(kt<>kx)|or(mx<>double(mt)) then 
515     disp('max('+t1+')'),pause
516   end
517 end
518 // checking min(A)
519 [mx,kx]=min(A);
520 for t1=types
521   execstr('At='+t1+'(A);')
522   [mt,kt]=min(At);
523   if or(kt<>kx)|or(mx<>double(mt)) then 
524     disp('min('+t1+')'),pause
525   end
526 end
527 // checking max(A,'r')
528 [mx,kx]=max(A,'r');
529 for t1=types
530   execstr('At='+t1+'(A);')
531   [mt,kt]=max(At,'r');
532   if or(kt<>kx)|or(mx<>double(mt)) then 
533     disp('max('+t1+',''r'')'),pause
534   end
535 end
536 // checking min(A,'r')
537 [mx,kx]=min(A,'r');
538 for t1=types
539   execstr('At='+t1+'(A);')
540   [mt,kt]=min(At,'r');
541   if or(kt<>kx)|or(mx<>double(mt)) then 
542     disp('min('+t1+',''r'')'),pause
543   end
544 end
545 // checking max(A,'c')
546 [mx,kx]=max(A,'c');
547 for t1=types
548   execstr('At='+t1+'(A);')
549   [mt,kt]=max(At,'c');
550   if or(kt<>kx)|or(mx<>double(mt)) then 
551     disp('max('+t1+',''c'')'),pause
552   end
553 end
554 // checking min(A,'c')
555 [mx,kx]=min(A,'c');
556 for t1=types
557   execstr('At='+t1+'(A);')
558   [mt,kt]=min(At,'c');
559   if or(kt<>kx)|or(mx<>double(mt)) then 
560     disp('min('+t1+',''c'')'),pause
561   end
562 end
563 //int32 int8 ... iconvert