restore tests from operations module
[scilab.git] / scilab / modules / ast / tests / unit_tests / multiplication.tst
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
8 // <-- JVM NOT MANDATORY -->
9
10 r = 2;
11 R = [1,2;3,4];
12 R3(:,:,1) = R;
13 R3(:,:,2) = R';
14 c = 1 + 2*%i;
15 C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
16 C3(:,:,1) = C;
17 C3(:,:,2) = C';
18
19
20 // double * double
21
22 // r * r
23 assert_checkequal(r * r, 4);
24 // r * c
25 assert_checkequal(r * c, 2+%i*4);
26 // c * r
27 assert_checkequal(c * r, 2+%i*4);
28 // c * c
29 assert_checkequal(c * c, -3+%i*4);
30
31
32 // double * DOUBLE
33
34 // r * R
35 assert_checkequal(r * R, [2,4;6,8]);
36 rR3ref(:,:,1) = [2,4;6,8];
37 rR3ref(:,:,2) = [2,6;4,8];
38 assert_checkequal(r * R3, rR3ref);
39 // r * C
40 assert_checkequal(r * C, [2+%i*4,4+%i*8;6+%i*12,8+%i*16]);
41 rC3ref(:,:,1) = [2+%i*4, 4+%i*8; 6+%i*12, 8+%i*16];
42 rC3ref(:,:,2) = [2-%i*4, 6-%i*12; 4-%i*8, 8-%i*16];
43 assert_checkequal(r * C3, rC3ref);
44 // c * R
45 assert_checkequal(c * R, [1+%i*2,2+%i*4;3+%i*6,4+%i*8]);
46 cR3ref(:,:,1) = [1+%i*2, 2+%i*4; 3+%i*6, 4+%i*8];
47 cR3ref(:,:,2) = [1+%i*2, 3+%i*6; 2+%i*4, 4+%i*8];
48 assert_checkequal(c * R3, cR3ref);
49 // c * C
50 assert_checkequal(c * C, [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16]);
51 cC3ref(:,:,1) = [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16];
52 cC3ref(:,:,2) = [ 5, 15; 10, 20];
53 assert_checkequal(c * C3, cC3ref);
54
55
56 // DOUBLE * double
57
58 // R * r
59 assert_checkequal(R * r, [2,4;6,8]);
60 R3rref(:,:,1) = [2,4;6,8];
61 R3rref(:,:,2) = [2,6;4,8];
62 assert_checkequal(R3 * r, R3rref);
63 // R * c
64 assert_checkequal(R * c, [ 1+%i*2, 2+%i*4; 3+%i*6, 4+%i*8]);
65 R3cref(:,:,1) = [ 1+%i*2, 2+%i*4; 3+%i*6, 4+%i*8];
66 R3cref(:,:,2) = [ 1+%i*2, 3+%i*6; 2+%i*4, 4+%i*8];
67 assert_checkequal(R3 * c, R3cref);
68 // C * r
69 assert_checkequal(C * r, [ 2+%i*4, 4+%i*8; 6+%i*12, 8+%i*16]);
70 C3rref(:,:,1) = [ 2+%i*4, 4+%i*8; 6+%i*12, 8+%i*16];
71 C3rref(:,:,2) = [ 2-%i*4, 6-%i*12; 4-%i*8, 8-%i*16];
72 assert_checkequal(C3 * r, C3rref);
73 // C * c
74 assert_checkequal(C * c, [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16]);
75 C3cref(:,:,1) = [-3+%i*4,-6+%i*8;-9+%i*12,-12+%i*16];
76 C3cref(:,:,2) = [ 5, 15; 10, 20];
77 assert_checkequal(C3 * c, C3cref);
78
79
80 // DOUBLE * DOUBLE
81
82 // R * R
83 assert_checkequal(R * R, [7,10;15,22]);
84 // R * C
85 assert_checkequal(R * C, [ 7+%i*14, 10+%i*20; 15+%i*30, 22+%i*44]);
86 // C * R
87 assert_checkequal(C * R, [ 7+%i*14, 10+%i*20; 15+%i*30, 22+%i*44]);
88 // C * C
89 assert_checkequal(C * C, [-21+%i*28,-30+%i*40;-45+%i*60,-66+%i*88]);