restore tests from operations module
[scilab.git] / scilab / modules / ast / tests / unit_tests / addition.dia.ref
1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2012 - DIGITEO - Antoine ELIAS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // ============================================================================
7 // <-- JVM NOT MANDATORY -->
8 r = 2;
9 R = [1,2;3,4];
10 R3(:,:,1) = R;
11 R3(:,:,2) = R';
12 c = 1 + 2*%i;
13 C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
14 C3(:,:,1) = C;
15 C3(:,:,2) = C';
16 e = eye();
17 ei = (5+%i) * eye();
18 p = 1 + %s - %s**2;
19 pc = 1 + %s - %s**2 + ( 2 - 3 * %s + 4 * %s**2 ) * %i;
20 P = [2*p, -3*p;4*p,-5*p];
21 PC = [2*pc, -3*pc;4*pc,-5*pc];
22 SP = sparse([1,2;4,5;3,10],[1,2,3]);
23 SPC = sparse([1,2;4,5;3,10],[1,2,3]) + sparse([1,2;4,5;3,10],[1,2,3]) * -4*%i;
24 assert_checkequal((1:3) + 1, 2:4);
25 assert_checkequal((1:3) + (4:6), [5 7 9]);
26 assert_checkequal(1 + (1:3), 2:4);
27 //[] + []
28 assert_checkequal([] + [], []);
29 //double + []
30 //r + []
31 assert_checkequal(r + [], r);
32 //c + []
33 assert_checkequal(c + [], c);
34 //[] + double
35 //[] + r
36 assert_checkequal([] + r, r);
37 //[] + c
38 assert_checkequal([] + c, c);
39 //DOUBLE + []
40 //R + []
41 assert_checkequal(R + [], R);
42 //C + []
43 assert_checkequal(C + [], C);
44 //[] + DOUBLE
45 //[] + R
46 assert_checkequal([] + R, R);
47 //[] + C
48 assert_checkequal([] + C, C);
49 // double + double
50 //r + r
51 assert_checkequal(r + r, 4);
52 //r + c
53 assert_checkequal(r + c, 3+2*%i);
54 //c + r
55 assert_checkequal(c + r, 3+2*%i);
56 //c + c
57 assert_checkequal(c + c, 2+4*%i);
58 //double + DOUBLE
59 //r + R
60 assert_checkequal(r + R, [3,4;5,6]);
61 rR3ref(:,:,1) = [3,4;5,6];
62 rR3ref(:,:,2) = [3,5;4,6];
63 assert_checkequal(r + R3, rR3ref);
64 //r + C
65 assert_checkequal(r + C, [3+2*%i,4+4*%i;5+6*%i,6+8*%i]);
66 rC3ref(:,:,1) = [3+2*%i,4+4*%i;5+6*%i,6+8*%i];
67 rC3ref(:,:,2) = [3-2*%i,5-6*%i;4-4*%i,6-8*%i];
68 assert_checkequal(r + C3, rC3ref);
69 //c + R
70 assert_checkequal(c + R, [2+2*%i,3+2*%i;4+2*%i,5+2*%i]);
71 cR3ref(:,:,1) = [2+2*%i,3+2*%i;4+2*%i,5+2*%i];
72 cR3ref(:,:,2) = [2+2*%i,4+2*%i;3+2*%i,5+2*%i];
73 assert_checkequal(c + R3, cR3ref);
74 //c + C
75 assert_checkequal(c + C, [2+4*%i,3+6*%i;4+8*%i,5+10*%i]);
76 cC3ref(:,:,1) = [2+4*%i,3+6*%i;4+8*%i,5+10*%i];
77 cC3ref(:,:,2) = [2,4-4*%i;3-2*%i,5-6*%i];
78 assert_checkequal(c + C3, cC3ref);
79 //DOUBLE + double
80 //R + r
81 assert_checkequal(R + r, [3,4;5,6]);
82 R3rref(:,:,1) = [3,4;5,6];
83 R3rref(:,:,2) = [3,5;4,6];
84 assert_checkequal(R3 + r, R3rref);
85 //R + c
86 assert_checkequal(R + c, [2+2*%i,3+2*%i;4+2*%i,5+2*%i]);
87 R3cref(:,:,1) = [2+2*%i,3+2*%i;4+2*%i,5+2*%i];
88 R3cref(:,:,2) = [2+2*%i,4+2*%i;3+2*%i,5+2*%i];
89 assert_checkequal(R3 + c, R3cref);
90 //C + r
91 assert_checkequal(C + r, [3+2*%i,4+4*%i;5+6*%i,6+8*%i]);
92 C3rref(:,:,1) = [3+2*%i,4+4*%i;5+6*%i,6+8*%i];
93 C3rref(:,:,2) = [3-2*%i,5-6*%i;4-4*%i,6-8*%i];
94 assert_checkequal(C3 + r, C3rref);
95 //c + c
96 assert_checkequal(C + c, [2+4*%i,3+6*%i;4+8*%i,5+10*%i]);
97 C3cref(:,:,1) = [2+4*%i,3+6*%i;4+8*%i,5+10*%i];
98 C3cref(:,:,2) = [2,4-4*%i;3-2*%i,5-6*%i];
99 assert_checkequal(C3 + c, C3cref);
100 //DOUBLE + DOUBLE
101 //R + R
102 assert_checkequal(R + R, [2,4;6,8]);
103 R3R3ref(:,:,1) = [2,4;6,8];
104 R3R3ref(:,:,2) = [2,6;4,8];
105 assert_checkequal(R3 + R3, R3R3ref);
106 //R + C
107 assert_checkequal(R + C, [2+2*%i,4+4*%i;6+6*%i,8+8*%i]);
108 R3C3ref(:,:,1) = [2+2*%i,4+4*%i;6+6*%i,8+8*%i];
109 R3C3ref(:,:,2) = [2-2*%i,6-6*%i;4-4*%i,8-8*%i];
110 assert_checkequal(R3 + C3, R3C3ref);
111 //C + R
112 assert_checkequal(C + R, [2+2*%i,4+4*%i;6+6*%i,8+8*%i]);
113 C3R3ref(:,:,1) = [2+2*%i,4+4*%i;6+6*%i,8+8*%i];
114 C3R3ref(:,:,2) = [2-2*%i,6-6*%i;4-4*%i,8-8*%i];
115 assert_checkequal(C3 + R3, C3R3ref);
116 //C + C
117 assert_checkequal(C + C, [2+4*%i,4+8*%i;6+12*%i,8+16*%i]);
118 C3C3ref(:,:,1) = [2+4*%i,4+8*%i;6+12*%i,8+16*%i];
119 C3C3ref(:,:,2) = [2-4*%i,6-12*%i;4-8*%i,8-16*%i];
120 assert_checkequal(C3 + C3, C3C3ref);
121 //identity
122 //e + R
123 assert_checkequal(e + R, [2 2 ;3 5]);
124 //R + e
125 assert_checkequal(R + e, [2 2 ;3 5]);
126 //e + C
127 assert_checkequal(e + C, [2+2*%i,2+4*%i;3+6*%i,5+8*%i]);
128 //C + e
129 assert_checkequal(C + e, [2+2*%i,2+4*%i;3+6*%i,5+8*%i]);
130 //e + r
131 assert_checkequal(e + r, 3);
132 //r + e
133 assert_checkequal(r + e, 3);
134 //e + c
135 assert_checkequal(e + c, 2+2*%i);
136 //c + e
137 assert_checkequal(c + e, 2+2*%i);
138 //e + []
139 assert_checkequal(e + [], e);
140 //[] + e
141 assert_checkequal([] + e, e);
142 //e + e
143 assert_checkequal(e + e, 2* eye());
144 //e + ei
145 assert_checkequal(e + ei, (6+%i) * eye());
146 //identity complex
147 //ei + R
148 assert_checkequal(ei + R, [6+%i,2;3,9+%i]);
149 //R + ei
150 assert_checkequal(R + ei, [6+%i,2;3,9+%i]);
151 //ei + C
152 assert_checkequal(ei + C, [6+3*%i,2+4*%i;3+6*%i,9+9*%i]);
153 //C + ei
154 assert_checkequal(C + ei, [6+3*%i,2+4*%i;3+6*%i,9+9*%i]);
155 //ei + r
156 assert_checkequal(ei + r, 7 + %i);
157 //r + ei
158 assert_checkequal(r + ei, 7 + %i);
159 //ei + c
160 assert_checkequal(ei + c, 6+3*%i);
161 //c + ei
162 assert_checkequal(c + ei, 6+3*%i);
163 //ei + []
164 assert_checkequal(ei + [], ei);
165 //[] + ei
166 assert_checkequal([] + ei, ei);
167 //ei + e
168 assert_checkequal(ei + e, (6+%i) * eye());
169 //ei + ei
170 assert_checkequal(ei + ei, (10+2*%i) * eye());
171 //poly
172 //p + []
173 assert_checkequal(p + [], p);
174 //[] + p
175 assert_checkequal([] + p, p);
176 //pc + []
177 assert_checkequal(pc + [], pc);
178 //[] + pc
179 assert_checkequal([] + pc, pc);
180 //P + []
181 assert_checkequal(P + [], P);
182 //[] + P
183 assert_checkequal([] + P, P);
184 //PC + []
185 assert_checkequal(PC + [], PC);
186 //[] + PC
187 assert_checkequal([] + PC, PC);
188 //p + r
189 assert_checkequal(p + r, 3+%s-%s**2);
190 //r + p
191 assert_checkequal(r + p, 3+%s-%s**2);
192 //p + c
193 assert_checkequal(p + c, 2+%s-%s**2 + 2*%i);
194 //c + p
195 assert_checkequal(c + p, 2+%s-%s**2 + 2*%i);
196 //p + R
197 assert_checkequal(p + R, [2+%s-%s**2,3+%s-%s**2;4+%s-%s**2,5+%s-%s**2]);
198 //R + p
199 assert_checkequal(R + p, [2+%s-%s**2,3+%s-%s**2;4+%s-%s**2,5+%s-%s**2]);
200 //p + C
201 assert_checkequal(p + C, [2+%s-%s**2+2*%i,3+%s-%s**2+4*%i;4+%s-%s**2+6*%i,5+%s-%s**2+8*%i]);
202 //C + p
203 assert_checkequal(C + p, [2+%s-%s**2+2*%i,3+%s-%s**2+4*%i;4+%s-%s**2+6*%i,5+%s-%s**2+8*%i]);
204 //p + p
205 assert_checkequal(p + p, 2 + 2*%s - 2*%s**2);
206 //p + pc
207 assert_checkequal(p + pc, 2 + 2*%s - 2*%s**2 + (2-3*%s+4*%s**2) * %i);
208 //pc + p
209 assert_checkequal(pc + p, 2 + 2*%s - 2*%s**2 + (2-3*%s+4*%s**2) * %i);
210 //pc + pc
211 assert_checkequal(pc + pc, 2 + 2*%s - 2*%s**2 + (4-6*%s+8*%s**2) * %i);
212 //P + p
213 assert_checkequal(P + p, [3+3*%s-3*%s**2,-2-2*%s+2*%s**2;5+5*%s-5*%s**2,-4-4*%s+4*%s**2]);
214 //p + P
215 assert_checkequal(p + P, [3+3*%s-3*%s**2,-2-2*%s+2*%s**2;5+5*%s-5*%s**2,-4-4*%s+4*%s**2]);
216 //P + pc
217 assert_checkequal(P + pc, [3+3*%s-3*%s**2+(2-3*%s+4*%s**2)*%i,-2-2*%s+2*%s**2+(2-3*%s+4*%s**2)*%i;5+5*%s-5*%s**2+(2-3*%s+4*%s**2)*%i,-4-4*%s+4*%s**2+(2-3*%s+4*%s**2)*%i]);
218 //pc + P
219 assert_checkequal(pc + P, [3+3*%s-3*%s**2+(2-3*%s+4*%s**2)*%i,-2-2*%s+2*%s**2+(2-3*%s+4*%s**2)*%i;5+5*%s-5*%s**2+(2-3*%s+4*%s**2)*%i,-4-4*%s+4*%s**2+(2-3*%s+4*%s**2)*%i]);
220 //PC + p
221 assert_checkequal(PC + p, [3+3*%s-3*%s**2+(4-6*%s+8*%s**2)*%i,-2-2*%s+2*%s**2+(-6+9*%s-12*%s**2)*%i;5+5*%s-5*%s**2+(8-12*%s+16*%s**2)*%i,-4-4*%s+4*%s**2+(-10+15*%s-20*%s**2)*%i]);
222 //p + PC
223 assert_checkequal(p + PC, [3+3*%s-3*%s**2+(4-6*%s+8*%s**2)*%i,-2-2*%s+2*%s**2+(-6+9*%s-12*%s**2)*%i;5+5*%s-5*%s**2+(8-12*%s+16*%s**2)*%i,-4-4*%s+4*%s**2+(-10+15*%s-20*%s**2)*%i]);
224 //PC + pc
225 assert_checkequal(PC + pc, [3+3*%s-3*%s**2+(6-9*%s+12*%s**2)*%i,-2-2*%s+2*%s**2+(-4+6*%s-8*%s**2)*%i;5+5*%s-5*%s**2+(10-15*%s+20*%s**2)*%i,-4-4*%s+4*%s**2+(-8+12*%s-16*%s**2)*%i]);
226 //pc + PC
227 assert_checkequal(pc + PC, [3+3*%s-3*%s**2+(6-9*%s+12*%s**2)*%i,-2-2*%s+2*%s**2+(-4+6*%s-8*%s**2)*%i;5+5*%s-5*%s**2+(10-15*%s+20*%s**2)*%i,-4-4*%s+4*%s**2+(-8+12*%s-16*%s**2)*%i]);
228 //P + P
229 assert_checkequal(P + P, [4+4*%s-4*%s**2,-6-6*%s+6*%s**2;8+8*%s-8*%s**2,-10-10*%s+10*%s**2]);
230 //P + PC
231 assert_checkequal(P + PC, [4+4*%s-4*%s**2+(4-6*%s+8*%s**2)*%i,-6-6*%s+6*%s**2+(-6+9*%s-12*%s**2)*%i;8+8*%s-8*%s**2+(8-12*%s+16*%s**2)*%i,-10-10*%s+10*%s**2+(-10+15*%s-20*%s**2)*%i]);
232 //PC + P
233 assert_checkequal(PC + P, [4+4*%s-4*%s**2+(4-6*%s+8*%s**2)*%i,-6-6*%s+6*%s**2+(-6+9*%s-12*%s**2)*%i;8+8*%s-8*%s**2+(8-12*%s+16*%s**2)*%i,-10-10*%s+10*%s**2+(-10+15*%s-20*%s**2)*%i]);
234 //PC + PC
235 assert_checkequal(PC + PC, [4+4*%s-4*%s**2+(8-12*%s+16*%s**2)*%i,-6-6*%s+6*%s**2+(-12+18*%s-24*%s**2)*%i;8+8*%s-8*%s**2+(16-24*%s+32*%s**2)*%i,-10-10*%s+10*%s**2+(-20+30*%s-40*%s**2)*%i]);
236 //sparse
237 //SP + []
238 assert_checkequal(SP + [], SP);
239 //[] + SP
240 assert_checkequal([] + SP, SP);
241 //SPC + []
242 assert_checkequal(SPC + [], SPC);
243 //[] + SPC
244 assert_checkequal([] + SPC, SPC);
245 //SP + r
246 assert_checkequal(SP + r, full(SP) + r);
247 //r + SP
248 assert_checkequal(r + SP, full(SP) + r);
249 //SP + c
250 assert_checkequal(SP + c, full(SP) + c);
251 //c + SP
252 assert_checkequal(c + SP, full(SP) + c);
253 //SPC + r
254 assert_checkequal(SPC + r, full(SPC) + r);
255 //r + SPC
256 assert_checkequal(r + SPC, full(SPC) + r);
257 //SPC + c
258 assert_checkequal(SPC + c, full(SPC) + c);
259 //c + SPC
260 assert_checkequal(c + SPC, full(SPC) + c);
261 //SP + SP
262 assert_checkequal(SP + SP, sparse(full(SP) + full(SP)));
263 //SP + SPC
264 assert_checkequal(SP + SPC, sparse(full(SP) + full(SPC)));
265 //SPC + SP
266 assert_checkequal(SPC + SP, sparse(full(SPC) + full(SP)));
267 //SPC + SPC
268 assert_checkequal(SPC + SPC, sparse(full(SPC) + full(SPC)));