fix core tests
[scilab.git] / scilab / modules / core / tests / unit_tests / basic_operations.dia.ref
1 //<-- CLI SHELL MODE -->
2 // =============================================================================
3 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 // Copyright (C) ????-2008 - INRIA
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8 // Unit test for Scilab basic operations
9 pi=%pi;
10 i=%i;
11 e=%e;
12 1;
13 a=1;
14 b=[1 2 3];
15 c=[1 2 3;4 5 6];
16 d=[1 2 3;4 5 6]';
17 d=[1 2 3 4;4 5 6 7;8 9 10 11;12 13 14 15];
18 d=[1 2;3 4];
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];
22 h=[i 1 2 i 3];
23 o=[1 i i 2 3]';
24 b(2)=3;
25 e1(1,3)=1;
26 p='apcdefghijklmnopqrstuvwxyz0123456789';
27 // test de stackg
28 a,b,c,d,e1,f,g,h,o,p
29  a  = 
30    1.
31  b  = 
32    1.   3.   3.
33  c  = 
34    1.   2.   3.
35    4.   5.   6.
36  d  = 
37    1.   2.
38    3.   4.
39  e1  = 
40    1.   2.    1.    4. 
41    5.   6.    7.    8. 
42    9.   10.   11.   12.
43  f  = 
44   -1.  -2.  -3.
45    0.   0.   0.
46   -4.  -5.  -6.
47    0.   0.   0.
48   -7.  -8.  -9.
49  g  = 
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  
53  h  = 
54    0. + i     1. + 0.i   2. + 0.i   0. + i     3. + 0.i
55  o  = 
56    1. + 0.i
57    0. - i  
58    0. - i  
59    2. + 0.i
60    3. + 0.i
61  p  = 
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]);
74 //test de stack2
75 //
76 // additions...
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]);
81 //
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]);
89 //
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]);
94 //
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]);
99 //multiplication
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]);
104 //eye
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]);
109 // :
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]);
112 // for
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]);
117 a=[1 2 3 4;5 6 7 8];
118 c=a;
119 c(1,1)=i;
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) == []);
128 //
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]);
133 //
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]);
138 //
139 rand("seed", 0);
140 rand(a)
141  ans  =
142    0.2113249   0.0002211   0.6653811   0.8497452
143    0.7560439   0.3303271   0.6283918   0.685731 
144 rand(c)
145  ans  =
146          column 1 to 2
147    0.8782165 + 0.2312237i   0.5608486 + 0.8833888i
148    0.068374  + 0.2164633i   0.6623569 + 0.6525135i
149          column 3 to 4
150    0.7263507 + 0.3076091i   0.5442573 + 0.2146008i
151    0.1985144 + 0.9329616i   0.2320748 + 0.312642i 
152 rand(3,3)
153  ans  =
154    0.3616361   0.4826472   0.5015342
155    0.2922267   0.3321719   0.4368588
156    0.5664249   0.5935095   0.2693125
157 rand(3,2)
158  ans  =
159    0.6325745   0.0437334
160    0.4051954   0.4818509
161    0.9184708   0.2639556
162 rand()
163  ans  =
164    0.4148104
165 rand("uniform")
166 rand("normal")
167 rand("seed", 5)
168 rand("seed", 0)
169 //
170 abs(c)
171  ans  =
172    1.   2.   3.   4.
173    5.   6.   7.   8.
174 abs(a)
175  ans  =
176    1.   2.   3.   4.
177    5.   6.   7.   8.
178 //
179 real(c)
180  ans  =
181    0.   2.   3.   4.
182    5.   6.   7.   8.
183 imag(c)
184  ans  =
185    1.   0.   0.   0.
186    0.   0.   0.   0.
187 real(a)
188  ans  =
189    1.   2.   3.   4.
190    5.   6.   7.   8.
191 imag(a)
192  ans  =
193    0.   0.   0.   0.
194    0.   0.   0.   0.
195 //
196 round(rand(3,3))
197  ans  =
198   -1.   1.   1.
199    1.   1.   2.
200    1.   0.   1.
201 //
202 conj(a)
203  ans  =
204    1.   2.   3.   4.
205    5.   6.   7.   8.
206 conj(c)
207  ans  =
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
210 //
211 size(a)
212  ans  =
213    2.   4.
214 [m,n]=size(a)
215  m  = 
216    2.
217  n  = 
218    4.
219 //
220 triu(a)
221  ans  =
222    1.   2.   3.   4.
223    0.   6.   7.   8.
224 tril(a)
225  ans  =
226    1.   0.   0.   0.
227    5.   6.   0.   0.
228 triu(a,1)
229  ans  =
230    0.   2.   3.   4.
231    0.   0.   7.   8.
232 triu(a,-1)
233  ans  =
234    1.   2.   3.   4.
235    5.   6.   7.   8.
236 tril(a,1)
237  ans  =
238    1.   2.   0.   0.
239    5.   6.   7.   0.
240 tril(a,-1)
241  ans  =
242    0.   0.   0.   0.
243    5.   0.   0.   0.
244 triu(c)
245  ans  =
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
248 tril(c)
249  ans  =
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
252 triu(c,1)
253  ans  =
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
256 triu(c,10)
257  ans  =
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
260 triu(c,-1)
261  ans  =
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
264 triu(c,-10)
265  ans  =
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
268 tril(c,1)
269  ans  =
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
272 tril(c,10)
273  ans  =
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
276 tril(c,-1)
277  ans  =
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
280 tril(c,-10)
281  ans  =
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