fix core tests
[scilab.git] / scilab / modules / core / tests / unit_tests / basic_operations.tst
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
10 pi=%pi;
11 i=%i;
12 e=%e;
13 1;
14 a=1;
15 b=[1 2 3];
16 c=[1 2 3;4 5 6];
17 d=[1 2 3;4 5 6]';
18 d=[1 2 3 4;4 5 6 7;8 9 10 11;12 13 14 15];
19 d=[1 2;3 4];
20 e1=[[1 2] [3 4];[5 6 7 8];[9;10;11;12]'];
21 f([1 3 5],[1 2 3])=[-1 -2 -3;-4 -5 -6;-7 -8 -9];
22 g=[i,2,3;1 i 3;1 2 i];
23 h=[i 1 2 i 3];
24 o=[1 i i 2 3]';
25 b(2)=3;
26 e1(1,3)=1;
27 p='apcdefghijklmnopqrstuvwxyz0123456789';
28 // test de stackg
29 a,b,c,d,e1,f,g,h,o,p
30 assert_checkequal(b(2),3);
31 assert_checkequal(e1(1,3),1);
32 assert_checkequal(e1([1 2],[3 4]),[1 4;7 8]);
33 assert_checkequal(e1(1:2,:),[1 2 1 4;5 6 7 8]);
34 assert_checkequal(e1(:,4),[4; 8; 12]);
35 assert_checkequal(e1(:,:),[1 2 1 4; 5 6 7 8; 9 10 11 12]);
36 assert_checkequal(g(1,1),i);
37 assert_checkequal(g(:,1),[i;1;1]);
38 assert_checkequal(g(1:2,:),[i,2,3; 1,i,3]);
39 assert_checkequal(g(:,:),[i,2,3;1,i,3;1,2,i]);
40 assert_checkequal(o',[1 i i 2 3]);
41 //test de stack2
42 //
43 // additions...
44 assert_checkequal([1 2 3;4 5 6]-[1 2 3;4 5 6],[0,0,0;0,0,0]);
45 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]);
46 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]);
47 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]);
48 //
49 assert_checkequal(2\[4 8 16]/2-[1 2 4],[0,0,0]);
50 assert_checktrue(i\[2*i 2 i*4]/i-[-i*2 -2 -4*i] == [0,0,0]);
51 // element wise operations
52 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]);
53 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]);
54 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]);
55 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]);
56 //
57 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]);
58 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]);
59 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]);
60 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]);
61 //
62 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]);
63 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]);
64 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]);
65 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]);
66 //multiplication
67 assert_checkequal([1 2 3;4 5 6]*[3;2;1]-[10;28],[0;0]);
68 assert_checktrue([1 i 3;4 5 6]*[3;2;1]-[6+2*i;28] == [0;0]);
69 assert_checktrue([1 2 3;4 5 6]*[i;2;1]-[i+7;4*i+16] == [0;0]);
70 assert_checktrue([1 i 3;2*i,-i,1]*[i;-i;i]-[4*i+1;-3+i] == [0;0]);
71 //eye
72 assert_checkequal(eye(4,4),[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1]);
73 //a+-b*eye a*eye+-b a+-eye*b eye*a+-b
74 assert_checkequal(-2*eye()+[1 2;3 4]+eye()*2-[1 2;3 4],[0,0;0,0]);
75 assert_checktrue(-2*i*eye()+[1 2;3 4]+eye()*2*i-[1 2;3 4] == [0 0;0 0]);
76 // :
77 assert_checkequal(1:10,[1 2 3 4 5 6 7 8 9 10]);
78 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]);
79 // for
80 for k=1:3,for l=1:2,a(k,l)=k+l;end;end;
81 assert_checkequal(a,[2,3;3,4;4,5]);
82 assert_checkequal(diag([1 2 3])-[1 0 0;0 2 0;0 0 3],[0 0 0;0 0 0;0 0 0]);
83 assert_checktrue(diag([1 i 2])-[1 0 0;0 i 0;0 0 2] == [0,0,0;0,0,0;0,0,0]);
84 a=[1 2 3 4;5 6 7 8];
85 c=a;
86 c(1,1)=i;
87 assert_checkequal(diag(a)-[1;6],[0;0]);
88 assert_checkequal(diag(a,1)-[2;7],[0;0]);
89 assert_checkequal(diag(a,-1)-[5],0);
90 assert_checkequal(diag(a,4),[]);
91 assert_checktrue(diag(c)-[i;6] == [0;0]);
92 assert_checktrue(diag(c,1)-[2;7] == [0;0]);
93 assert_checktrue(diag(c,-1)-[5] == 0);
94 assert_checktrue(diag(c,4) == []);
95 //
96 assert_checkequal(eye(a),[1,0,0,0;0,1,0,0]);
97 assert_checktrue(eye(c)==[1,0,0,0;0,1,0,0]);
98 assert_checktrue(eye(3,3)==[1,0,0;0,1,0;0,0,1]);
99 assert_checkequal(eye(2,3),[1,0,0;0,1,0]);
100 //
101 assert_checkequal(ones(a),[1,1,1,1;1,1,1,1]);
102 assert_checkequal(ones(c),[1,1,1,1;1,1,1,1]);
103 assert_checkequal(ones(3,3),[1,1,1;1,1,1;1,1,1]);
104 assert_checkequal(ones(3,2),[1,1;1,1;1,1]);
105 //
106 rand("seed", 0);
107 rand(a)
108 rand(c)
109 rand(3,3)
110 rand(3,2)
111 rand()
112 rand("uniform")
113 rand("normal")
114 rand("seed", 5)
115 rand("seed", 0)
116 //
117 abs(c)
118 abs(a)
119 //
120 real(c)
121 imag(c)
122 real(a)
123 imag(a)
124 //
125 round(rand(3,3))
126 //
127 conj(a)
128 conj(c)
129 //
130 size(a)
131 [m,n]=size(a)
132 //
133 triu(a)
134 tril(a)
135 triu(a,1)
136 triu(a,-1)
137 tril(a,1)
138 tril(a,-1)
139 triu(c)
140 tril(c)
141 triu(c,1)
142 triu(c,10)
143 triu(c,-1)
144 triu(c,-10)
145 tril(c,1)
146 tril(c,10)
147 tril(c,-1)
148 tril(c,-10)