* bug #16399 fixed - zeros() with empty list extraction failed.
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / zeros.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2018 - ESI - Antoine ELIAS
4 // Copyright (C) 2018 - St├ęphane MOTTELET
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8
9 // <-- CLI SHELL MODE -->
10 // <-- NO CHECK REF -->
11
12 res(2,3,4) = 0;
13 computed = list([], 1, 10, list(2,3), list(2,3,4));
14 expected = list([], 0, 0, [0 0 0;0 0 0], res);
15
16 assert_checkequal(zeros(), 0);
17 for i = 1:size(computed)
18     assert_checkequal(zeros(computed(i)(:)), expected(i));
19 end
20
21 // by list extraction
22 l = list(1, 2, 3)
23 assert_checkequal(zeros(l(1:0)), 0);
24 assert_checkequal(zeros(l(1:1)), 0);
25 assert_checkequal(zeros(l(1:2)), [0, 0]);
26 assert_checkequal(zeros(l(1:3)), matrix([0, 0, 0, 0, 0, 0] , 1, 2, 3));
27
28
29 data = rand(4, 3, 2) * 1000;
30 dataz = zeros(data);
31
32 // boolean
33 ref = isinf(dataz);
34 assert_checkequal(zeros(1,0, "boolean"), []);
35 assert_checkequal(zeros([], "boolean"), []);
36 assert_checkequal(zeros(data, "boolean"), ref);
37 assert_checkequal(zeros(4,3,2, "boolean"), ref);
38 assert_checkequal(zeros(isinf(data)), dataz);
39
40 // int8
41 ref = int8(dataz);
42 assert_checkequal(zeros(1,0, "int8"), []);
43 assert_checkequal(zeros([], "int8"), []);
44 assert_checkequal(zeros(data, "int8"), ref);
45 assert_checkequal(zeros(4,3,2, "int8"), ref);
46 assert_checkequal(zeros(int8(data)), dataz);
47
48 // uint8
49 ref = uint8(dataz);
50 assert_checkequal(zeros(1,0, "uint8"), []);
51 assert_checkequal(zeros([], "uint8"), []);
52 assert_checkequal(zeros(data, "uint8"), ref);
53 assert_checkequal(zeros(4,3,2, "uint8"), ref);
54 assert_checkequal(zeros(uint8(data)), dataz);
55
56 // int16
57 ref = int16(dataz);
58 assert_checkequal(zeros(1,0, "int16"), []);
59 assert_checkequal(zeros([], "int16"), []);
60 assert_checkequal(zeros(data, "int16"), ref);
61 assert_checkequal(zeros(4,3,2, "int16"), ref);
62 assert_checkequal(zeros(int16(data)), dataz);
63
64 // uint16
65 ref = uint16(dataz);
66 assert_checkequal(zeros(1,0, "uint16"), []);
67 assert_checkequal(zeros([], "uint16"), []);
68 assert_checkequal(zeros(data, "uint16"), ref);
69 assert_checkequal(zeros(4,3,2, "uint16"), ref);
70 assert_checkequal(zeros(uint16(data)), dataz);
71
72 // int32
73 ref = int32(dataz);
74 assert_checkequal(zeros(1,0, "int32"), []);
75 assert_checkequal(zeros([], "int32"), []);
76 assert_checkequal(zeros(data, "int32"), ref);
77 assert_checkequal(zeros(4,3,2, "int32"), ref);
78 assert_checkequal(zeros(int32(data)), dataz);
79
80 // uint32
81 ref = uint32(dataz);
82 assert_checkequal(zeros(1,0, "uint32"), []);
83 assert_checkequal(zeros([], "uint32"), []);
84 assert_checkequal(zeros(data, "uint32"), ref);
85 assert_checkequal(zeros(4,3,2, "uint32"), ref);
86 assert_checkequal(zeros(uint32(data)), dataz);
87
88 // int64
89 ref = int64(dataz);
90 assert_checkequal(zeros(1,0, "int64"), []);
91 assert_checkequal(zeros([], "int64"), []);
92 assert_checkequal(zeros(data, "int64"), ref);
93 assert_checkequal(zeros(4,3,2, "int64"), ref);
94 assert_checkequal(zeros(int64(data)), dataz);
95
96 // uint64
97 ref = uint64(dataz);
98 assert_checkequal(zeros(1,0, "uint64"), []);
99 assert_checkequal(zeros([], "uint64"), []);
100 assert_checkequal(zeros(data, "uint64"), ref);
101 assert_checkequal(zeros(4,3,2, "uint64"), ref);
102 assert_checkequal(zeros(uint64(data)), dataz);
103