* Bug 15566 fixed: now matrix insertion checks all dimensions of source
[scilab.git] / scilab / modules / ast / tests / unit_tests / colon_insert.tst
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
3 //
4 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12 //
13 //
14 // <-- NO CHECK REF -->
15 // <-- CLI SHELL MODE -->
16
17 scalar = 5;
18 vect = 1:5;
19 vect2 = 6:10;
20 mat = [1,2,3,4;5,6,7,8];
21 hm = zeros(3,4,2); hm(:) = 1:24;
22
23 // scalar
24 clear a; a(:) = scalar;
25 assert_checkequal(a, scalar);
26
27 clear a; a(:,:) = scalar;
28 assert_checkequal(a, scalar);
29
30 clear a; a(:,:,:) = scalar;
31 assert_checkequal(a, scalar);
32
33 clear a; a(:,:,2) = scalar;
34 assert_checkequal(a, matrix([0;scalar], 1, 1, 2));
35
36 //scalar insert
37 a=scalar; a(:) = scalar;
38 assert_checkequal(a, scalar);
39
40 a=scalar; a(:,:) = scalar;
41 assert_checkequal(a, scalar);
42
43 a=scalar; a(:,:,2) = scalar;
44 assert_checkequal(a, matrix([scalar; scalar], 1, 1, 2));
45
46 //vector
47 a=vect; a(:) = scalar;
48 assert_checkequal(a, [scalar scalar scalar scalar scalar]);
49
50 a=vect; a(:,:) = scalar;
51 assert_checkequal(a, [scalar scalar scalar scalar scalar]);
52
53 a=vect; a(:,:,:) = scalar;
54 assert_checkequal(a, [scalar scalar scalar scalar scalar]);
55
56 a=vect; a(:,:,2) = scalar;
57 assert_checkequal(a, matrix([vect, scalar,scalar,scalar,scalar,scalar], 1, 5, 2));
58
59 //matrix
60 a=mat; a(:) = scalar;
61 assert_checkequal(a, matrix([scalar,scalar,scalar,scalar,scalar,scalar,scalar,scalar], 2, 4));
62
63 a=mat; a(:,:) = scalar;
64 assert_checkequal(a, matrix([scalar,scalar,scalar,scalar,scalar,scalar,scalar,scalar], 2, 4));
65
66 a=mat; a(:,:,:) = scalar;
67 assert_checkequal(a, matrix([scalar,scalar,scalar,scalar,scalar,scalar,scalar,scalar], 2, 4));
68
69 a=mat; a(:,:,2) = scalar;
70 assert_checkequal(a, matrix([mat(:)' scalar scalar scalar scalar scalar scalar scalar scalar], 2, 4, 2));
71
72 //hypermatrix
73 a=hm; a(:) = scalar;
74 assert_checkequal(a, matrix([scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar], 3, 4, 2));
75
76 a=hm; a(:,:) = scalar;
77 assert_checkequal(a, matrix([scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar], 3, 4, 2));
78
79 a=hm; a(:,:,:) = scalar;
80 assert_checkequal(a, matrix([scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar], 3, 4, 2));
81
82 a=hm; a(:,:,2) = scalar;
83 assert_checkequal(a, matrix([(hm(:,:,1)(:))' scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar scalar], 3, 4, 2));
84
85 //vector new insert
86 clear a; a(:) = vect;
87 assert_checkequal(a, vect);
88
89 clear a; a(:,:) = vect;
90 assert_checkequal(a, vect);
91
92 clear a; a(:,:,:) = vect;
93 assert_checkequal(a, vect);
94
95 clear a; a(:,:,2) = vect;
96 assert_checkequal(a, matrix([0 0 0 0 0 vect], 1, 5, 2));
97
98 clear a; a(:,:,:,2) = vect;
99 assert_checkequal(a, matrix([0 0 0 0 0 vect], 1, 5, 1, 2));
100
101 clear a; a(:) = vect';
102 assert_checkequal(a, vect');
103
104 clear a; a(:,:) = vect';
105 assert_checkequal(a, vect');
106
107 clear a; a(:,:,:) = vect';
108 assert_checkequal(a, vect');
109
110 clear a; a(:,:,2) = vect';
111 assert_checkequal(a, matrix([0 0 0 0 0 vect], 5, 1, 2));
112
113 clear a; a(:,:,:,2) = vect';
114 assert_checkequal(a, matrix([0 0 0 0 0 vect], 5, 1, 1, 2));
115
116 clear a; a(:,1,:) = vect;
117 assert_checkequal(a, matrix(vect, 1, 1, 5));
118
119 clear a; a(:,1,:) = vect';
120 assert_checkequal(a, vect');
121
122 a=vect; a(:) = vect2;
123 assert_checkequal(a, vect2);
124
125 a=vect; a(:,:) = vect2;
126 assert_checkequal(a, vect2);
127
128 a=vect; a(:,:,:) = vect2;
129 assert_checkequal(a, vect2);
130
131 a=vect; a(:,:,2) = vect2;
132 assert_checkequal(a, matrix([vect vect2], 1, 5, 2));
133
134 a=vect; a(:,:,:,2) = vect2;
135 assert_checkequal(a, matrix([vect vect2], 1, 5, 1, 2));
136
137 a=mat; a(:,:,2) = matrix(9:16,2,4);
138 assert_checkequal(a, matrix([mat(:)', 9:16], 2, 4, 2));
139
140 a=mat; a(:,:,:,2) = matrix(9:16,2,4);
141 assert_checkequal(a, matrix([mat(:)', 9:16], 2, 4, 1, 2));
142
143 a=hm; a(:) = hm(:);
144 assert_checkequal(a, hm);
145
146 a=hm; a(:,:) = hm(:,:);
147 assert_checkequal(a, hm);
148
149 a=hm; a(:,:,2) = hm(:,:,1);
150 assert_checkequal(a, matrix([hm(:,:,1)(:);hm(:,:,1)(:)], 3, 4, 2));
151
152 a=hm; a(:,:,:,2) = hm(:,:,:);
153 assert_checkequal(a, matrix([hm(:);hm(:)], 3,4,2,2));
154
155
156 //matrix
157 clear a; a(:) = mat;
158 assert_checkequal(a, mat);
159
160 clear a; a(:,:) = mat;
161 assert_checkequal(a, mat);
162
163 clear a; a(:,:,:) = mat;
164 assert_checkequal(a, mat);
165
166 clear a; a(:,:,2) = mat;
167 assert_checkequal(a, matrix([zeros(mat(:));mat(:)], 2, 4, 2));
168
169 clear a; a(:,:,:,2) = mat;
170 assert_checkequal(a, matrix([zeros(mat(:));mat(:)], 2, 4, 1, 2));
171
172 clear a; a(:,1,:) = mat;
173 assert_checkequal(a, matrix(mat, 2, 1, 4));
174
175 a=mat; a(:) = mat(:);
176 assert_checkequal(a, mat);
177
178 a=mat; a(:,:) = mat(:,:);
179 assert_checkequal(a, mat);
180
181 a=mat; a(:,:,2) = mat(:,:);
182 assert_checkequal(a, matrix([mat(:);mat(:)], 2, 4, 2));
183
184 a=mat; a(:,:,:,2) = mat(:,:)
185 assert_checkequal(a, matrix([mat(:);mat(:)], 2, 4, 1, 2));
186
187 //hypermatrix
188 clear a; a(:) = hm;
189 assert_checkequal(a, hm);
190
191 clear a; a(:,:) = hm;
192 assert_checkequal(a, hm);
193
194 clear a; a(:,:,:) = hm;
195 assert_checkequal(a, hm);
196
197 clear a; a(:,:,:, 2) = hm;
198 assert_checkequal(a, matrix([zeros(hm)(:);hm(:)], 3, 4, 2, 2));
199
200 clear a; a(:,1,:,:) = hm;
201 assert_checkequal(a, matrix(hm, 3, 1, 4, 2));