78125751ee8fef4923cca809953e039c41871c6a
[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(a)
140  ans  =
141    0.2113249   0.0002211   0.6653811   0.8497452
142    0.7560439   0.3303271   0.6283918   0.685731 
143 rand(c)
144  ans  =
145          column 1 to 2
146    0.8782165 + 0.2312237i   0.5608486 + 0.8833888i
147    0.068374  + 0.2164633i   0.6623569 + 0.6525135i
148          column 3 to 4
149    0.7263507 + 0.3076091i   0.5442573 + 0.2146008i
150    0.1985144 + 0.9329616i   0.2320748 + 0.312642i 
151 rand(3,3)
152  ans  =
153    0.3616361   0.4826472   0.5015342
154    0.2922267   0.3321719   0.4368588
155    0.5664249   0.5935095   0.2693125
156 rand(3,2)
157  ans  =
158    0.6325745   0.0437334
159    0.4051954   0.4818509
160    0.9184708   0.2639556
161 rand()
162  ans  =
163    0.4148104
164 rand('uniform')
165 rand('normal')
166 rand('seed',5)
167 rand('seed',0)
168 //
169 abs(c)
170  ans  =
171    1.   2.   3.   4.
172    5.   6.   7.   8.
173 abs(a)
174  ans  =
175    1.   2.   3.   4.
176    5.   6.   7.   8.
177 //
178 real(c)
179  ans  =
180    0.   2.   3.   4.
181    5.   6.   7.   8.
182 imag(c)
183  ans  =
184    1.   0.   0.   0.
185    0.   0.   0.   0.
186 real(a)
187  ans  =
188    1.   2.   3.   4.
189    5.   6.   7.   8.
190 imag(a)
191  ans  =
192    0.   0.   0.   0.
193    0.   0.   0.   0.
194 //
195 round(rand(3,3))
196  ans  =
197   -1.   1.   1.
198    1.   1.   2.
199    1.   0.   1.
200 //
201 conj(a)
202  ans  =
203    1.   2.   3.   4.
204    5.   6.   7.   8.
205 conj(c)
206  ans  =
207    0. - i     2. + 0.i   3. + 0.i   4. + 0.i
208    5. + 0.i   6. + 0.i   7. + 0.i   8. + 0.i
209 //
210 size(a)
211  ans  =
212    2.   4.
213 [m,n]=size(a)
214  n  = 
215    4.
216  m  = 
217    2.
218 //
219 triu(a)
220  ans  =
221    1.   2.   3.   4.
222    0.   6.   7.   8.
223 tril(a)
224  ans  =
225    1.   0.   0.   0.
226    5.   6.   0.   0.
227 triu(a,1)
228  ans  =
229    0.   2.   3.   4.
230    0.   0.   7.   8.
231 triu(a,-1)
232  ans  =
233    1.   2.   3.   4.
234    5.   6.   7.   8.
235 tril(a,1)
236  ans  =
237    1.   2.   0.   0.
238    5.   6.   7.   0.
239 tril(a,-1)
240  ans  =
241    0.   0.   0.   0.
242    5.   0.   0.   0.
243 triu(c)
244  ans  =
245    0. + i     2. + 0.i   3. + 0.i   4. + 0.i
246    0. + 0.i   6. + 0.i   7. + 0.i   8. + 0.i
247 tril(c)
248  ans  =
249    0. + i     0. + 0.i   0. + 0.i   0. + 0.i
250    5. + 0.i   6. + 0.i   0. + 0.i   0. + 0.i
251 triu(c,1)
252  ans  =
253    0. + 0.i   2. + 0.i   3. + 0.i   4. + 0.i
254    0. + 0.i   0. + 0.i   7. + 0.i   8. + 0.i
255 triu(c,10)
256  ans  =
257    0. + 0.i   0. + 0.i   0. + 0.i   0. + 0.i
258    0. + 0.i   0. + 0.i   0. + 0.i   0. + 0.i
259 triu(c,-1)
260  ans  =
261    0. + i     2. + 0.i   3. + 0.i   4. + 0.i
262    5. + 0.i   6. + 0.i   7. + 0.i   8. + 0.i
263 triu(c,-10)
264  ans  =
265    0. + i     2. + 0.i   3. + 0.i   4. + 0.i
266    5. + 0.i   6. + 0.i   7. + 0.i   8. + 0.i
267 tril(c,1)
268  ans  =
269    0. + i     2. + 0.i   0. + 0.i   0. + 0.i
270    5. + 0.i   6. + 0.i   7. + 0.i   0. + 0.i
271 tril(c,10)
272  ans  =
273    0. + i     2. + 0.i   3. + 0.i   4. + 0.i
274    5. + 0.i   6. + 0.i   7. + 0.i   8. + 0.i
275 tril(c,-1)
276  ans  =
277    0. + 0.i   0. + 0.i   0. + 0.i   0. + 0.i
278    5. + 0.i   0. + 0.i   0. + 0.i   0. + 0.i
279 tril(c,-10)
280  ans  =
281    0. + 0.i   0. + 0.i   0. + 0.i   0. + 0.i
282    0. + 0.i   0. + 0.i   0. + 0.i   0. + 0.i