1 //<-- CLI SHELL MODE -->
2 // =============================================================================
3 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 // Copyright (C) ????-2008 - INRIA
6 // This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8 // Unit test for Scilab basic operations
17 d=[1 2 3 4;4 5 6 7;8 9 10 11;12 13 14 15];
19 e1=[[1 2] [3 4];[5 6 7 8];[9;10;11;12]'];
20 f([1 3 5],[1 2 3])=[-1 -2 -3;-4 -5 -6;-7 -8 -9];
21 g=[i,2,3;1 i 3;1 2 i];
26 p='apcdefghijklmnopqrstuvwxyz0123456789';
50 0. + i 2. + 0.i 3. + 0.i
51 1. + 0.i 0. + i 3. + 0.i
52 1. + 0.i 2. + 0.i 0. + i
54 0. + i 1. + 0.i 2. + 0.i 0. + i 3. + 0.i
62 "apcdefghijklmnopqrstuvwxyz0123456789"
63 assert_checkequal(b(2),3);
64 assert_checkequal(e1(1,3),1);
65 assert_checkequal(e1([1 2],[3 4]),[1 4;7 8]);
66 assert_checkequal(e1(1:2,:),[1 2 1 4;5 6 7 8]);
67 assert_checkequal(e1(:,4),[4; 8; 12]);
68 assert_checkequal(e1(:,:),[1 2 1 4; 5 6 7 8; 9 10 11 12]);
69 assert_checkequal(g(1,1),i);
70 assert_checkequal(g(:,1),[i;1;1]);
71 assert_checkequal(g(1:2,:),[i,2,3; 1,i,3]);
72 assert_checkequal(g(:,:),[i,2,3;1,i,3;1,2,i]);
73 assert_checkequal(o',[1 i i 2 3]);
77 assert_checkequal([1 2 3;4 5 6]-[1 2 3;4 5 6],[0,0,0;0,0,0]);
78 assert_checkequal([1 2 3;4 5 6]+2*[1 2 3;4 5 6]-[1 2 3;4 5 6]*3, [0,0,0;0,0,0]);
79 assert_checktrue([1 i 3;4 5 i]+2*[1 i 3;4 5 i]-[1 i 3;4 5 i]*3 == [0,0,0;0,0,0]);
80 assert_checktrue([2*i -4*i 2*i]+2*[i -2*i i]+i*[2 -4 2]-[i -2*i i]*2 -2*[2 -4 2]*i == [0,0,0]);
82 assert_checkequal(2\[4 8 16]/2-[1 2 4],[0,0,0]);
83 assert_checktrue(i\[2*i 2 i*4]/i-[-i*2 -2 -4*i] == [0,0,0]);
84 // element wise operations
85 assert_checkequal([1 2;3 4;5 6].*[1 2;3 4;5 6]-[1 4;9 16;25 36],[0,0;0,0;0,0]);
86 assert_checktrue([1 2;3 4;5 6*i].*[1 2;3 4;5 6]-[1 4;9 16;25 36*i] == [0,0;0,0;0,0]);
87 assert_checktrue([1 2;3 4;5 6].*[1 2;3 4;5 6*i]-[1 4;9 16;25 36*i] == [0,0;0,0;0,0]);
88 assert_checktrue([1 2;3 4;5 6*i].*[1 2;3 4;5 6*i]-[1 4;9 16;25 -36] == [0,0;0,0;0,0]);
90 assert_checkequal([2 9 8;3 10 15]./[2 3 4;3 5 5]-[1 3 2;1 2 3],[0,0,0;0,0,0]);
91 assert_checktrue([2 9*i 8;3 10 15]./[2 3 4;3 5 5]-[1 3*i 2;1 2 3] == [0,0,0;0,0,0]);
92 assert_checktrue([2 9 8;3 10 15]./[2*i 3 4;3 5 5]-[-i 3 2;1 2 3] == [0,0,0;0,0,0]);
93 assert_checktrue([2*i 9 8;3 10 15]./[2*i 3 4;3 5 5]-[1 3 2;1 2 3] == [0,0,0;0,0,0]);
95 assert_checkequal([2 3 4;3 5 5].\[2 9 8;3 10 15]-[1 3 2;1 2 3],[0,0,0;0,0,0]);
96 assert_checktrue([2 i 4;3 5 5].\[2 9 8;3 10 15]-[1 -9*i 2 ;1 2 3] == [0,0,0;0,0,0]);
97 assert_checktrue([2 3 4;3 5 5].\[i 9 8;3 10 15]-[.5*i 3 2;1 2 3] == [0,0,0;0,0,0]);
98 assert_checktrue([i 3 4;3 5 5].\[i 9 8;3 10 15]-[1 3 2;1 2 3] == [0,0,0;0,0,0]);
100 assert_checkequal([1 2 3;4 5 6]*[3;2;1]-[10;28],[0;0]);
101 assert_checktrue([1 i 3;4 5 6]*[3;2;1]-[6+2*i;28] == [0;0]);
102 assert_checktrue([1 2 3;4 5 6]*[i;2;1]-[i+7;4*i+16] == [0;0]);
103 assert_checktrue([1 i 3;2*i,-i,1]*[i;-i;i]-[4*i+1;-3+i] == [0;0]);
105 assert_checkequal(eye(4,4),[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1]);
106 //a+-b*eye a*eye+-b a+-eye*b eye*a+-b
107 assert_checkequal(-2*eye()+[1 2;3 4]+eye()*2-[1 2;3 4],[0,0;0,0]);
108 assert_checktrue(-2*i*eye()+[1 2;3 4]+eye()*2*i-[1 2;3 4] == [0 0;0 0]);
110 assert_checkequal(1:10,[1 2 3 4 5 6 7 8 9 10]);
111 assert_checkalmostequal(1:.1:2,[1,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2]);
113 for k=1:3,for l=1:2,a(k,l)=k+l;end;end;
114 assert_checkequal(a,[2,3;3,4;4,5]);
115 assert_checkequal(diag([1 2 3])-[1 0 0;0 2 0;0 0 3],[0 0 0;0 0 0;0 0 0]);
116 assert_checktrue(diag([1 i 2])-[1 0 0;0 i 0;0 0 2] == [0,0,0;0,0,0;0,0,0]);
120 assert_checkequal(diag(a)-[1;6],[0;0]);
121 assert_checkequal(diag(a,1)-[2;7],[0;0]);
122 assert_checkequal(diag(a,-1)-[5],0);
123 assert_checkequal(diag(a,4),[]);
124 assert_checktrue(diag(c)-[i;6] == [0;0]);
125 assert_checktrue(diag(c,1)-[2;7] == [0;0]);
126 assert_checktrue(diag(c,-1)-[5] == 0);
127 assert_checktrue(diag(c,4) == []);
129 assert_checkequal(eye(a),[1,0,0,0;0,1,0,0]);
130 assert_checktrue(eye(c)==[1,0,0,0;0,1,0,0]);
131 assert_checktrue(eye(3,3)==[1,0,0;0,1,0;0,0,1]);
132 assert_checkequal(eye(2,3),[1,0,0;0,1,0]);
134 assert_checkequal(ones(a),[1,1,1,1;1,1,1,1]);
135 assert_checkequal(ones(c),[1,1,1,1;1,1,1,1]);
136 assert_checkequal(ones(3,3),[1,1,1;1,1,1;1,1,1]);
137 assert_checkequal(ones(3,2),[1,1;1,1;1,1]);
142 0.2113249 0.0002211 0.6653811 0.8497452
143 0.7560439 0.3303271 0.6283918 0.685731
147 0.8782165 + 0.2312237i 0.5608486 + 0.8833888i
148 0.068374 + 0.2164633i 0.6623569 + 0.6525135i
150 0.7263507 + 0.3076091i 0.5442573 + 0.2146008i
151 0.1985144 + 0.9329616i 0.2320748 + 0.312642i
154 0.3616361 0.4826472 0.5015342
155 0.2922267 0.3321719 0.4368588
156 0.5664249 0.5935095 0.2693125
208 0. - i 2. + 0.i 3. + 0.i 4. + 0.i
209 5. + 0.i 6. + 0.i 7. + 0.i 8. + 0.i
246 0. + i 2. + 0.i 3. + 0.i 4. + 0.i
247 0. + 0.i 6. + 0.i 7. + 0.i 8. + 0.i
250 0. + i 0. + 0.i 0. + 0.i 0. + 0.i
251 5. + 0.i 6. + 0.i 0. + 0.i 0. + 0.i
254 0. + 0.i 2. + 0.i 3. + 0.i 4. + 0.i
255 0. + 0.i 0. + 0.i 7. + 0.i 8. + 0.i
258 0. + 0.i 0. + 0.i 0. + 0.i 0. + 0.i
259 0. + 0.i 0. + 0.i 0. + 0.i 0. + 0.i
262 0. + i 2. + 0.i 3. + 0.i 4. + 0.i
263 5. + 0.i 6. + 0.i 7. + 0.i 8. + 0.i
266 0. + i 2. + 0.i 3. + 0.i 4. + 0.i
267 5. + 0.i 6. + 0.i 7. + 0.i 8. + 0.i
270 0. + i 2. + 0.i 0. + 0.i 0. + 0.i
271 5. + 0.i 6. + 0.i 7. + 0.i 0. + 0.i
274 0. + i 2. + 0.i 3. + 0.i 4. + 0.i
275 5. + 0.i 6. + 0.i 7. + 0.i 8. + 0.i
278 0. + 0.i 0. + 0.i 0. + 0.i 0. + 0.i
279 5. + 0.i 0. + 0.i 0. + 0.i 0. + 0.i
282 0. + 0.i 0. + 0.i 0. + 0.i 0. + 0.i
283 0. + 0.i 0. + 0.i 0. + 0.i 0. + 0.i