restore tests from operations module
[scilab.git] / scilab / modules / ast / tests / unit_tests / ldivide.tst
1 // ============================================================================
2 // Scilab ( http://www.scilab.org\ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Cedric Delamarre
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // ============================================================================
7
8 r = 2;
9 R = [1,2;3,4];
10 T = 2 * R;
11 c = 1 + 2*%i;
12 C = [1+2*%i,2+4*%i;3+6*%i,4+8*%i];
13 RR = [1, 2, 3;4, 5, 6];
14 TT = 2 * RR;
15
16 // check that input are not modified.
17 R \ T;
18 assert_checkequal(R, [1,2;3,4]);
19 assert_checkequal(T, 2*[1,2;3,4]);
20
21 RR \ TT;
22 assert_checkequal(RR, [1, 2, 3;4, 5, 6]);
23 assert_checkequal(TT, 2*[1, 2, 3;4, 5, 6]);
24
25 //double \ double
26
27 //r \ r
28 assert_checkalmostequal(r \ r, 1);
29 //r \ c
30 assert_checkalmostequal(r \ c, c / r);
31 //c \ r
32 assert_checkalmostequal(c \ r, r / c);
33 //c \ c
34 assert_checkalmostequal(c \ c, 1);
35
36
37
38 //double \ DOUBLE
39
40 //r \ R
41 assert_checkalmostequal(r \ R, R / r);
42 //r \ C
43 assert_checkalmostequal(r \ C, C / r);
44 //c \ R
45 assert_checkalmostequal(c \ R, R / c);
46 //c \ C
47 assert_checkalmostequal(c \ C, C / c);
48
49
50 //DOUBLE \ double
51
52 //R \ r
53 assert_checkalmostequal(R \ r, [-4,2;3,-1]);
54 //R \ c
55 assert_checkalmostequal(R \ c, [-2-4*%i , 1+2*%i ; 1.5+3*%i, -0.5-%i]);
56 //C \ r
57 assert_checkalmostequal(C \ r, [-0.8+1.6*%i,0.4-0.8*%i;0.6-1.2*%i,-0.2+0.4*%i]);
58 //C \ c
59 assert_checkalmostequal(C \ c, [-2,1;1.5,-0.5]);
60
61
62 //DOUBLE \ DOUBLE
63
64 //R \ R
65 assert_checkalmostequal(R \ R, R / R);
66 //R \ C
67 assert_checkalmostequal(R \ C, C / R);
68 //C \ R
69 assert_checkalmostequal(C \ R, R / C, [], %eps);
70 //C \ C
71 assert_checkalmostequal(C \ C, C / C);
72
73 // dot left division
74 //double .\ double
75
76 //r .\ r
77 assert_checkalmostequal(r .\ r, 1);
78 //r .\ c
79 assert_checkalmostequal(r .\ c, c ./ r);
80 //c .\ r
81 assert_checkalmostequal(c .\ r, r ./ c);
82 //c .\ c
83 assert_checkalmostequal(c .\ c, 1);
84
85
86
87 //double .\ DOUBLE
88
89 //r .\ R
90 assert_checkalmostequal(r .\ R, R ./ r);
91 //r .\ C
92 assert_checkalmostequal(r .\ C, C ./ r);
93 //c .\ R
94 assert_checkalmostequal(c .\ R, R ./ c);
95 //c .\ C
96 assert_checkalmostequal(c .\ C, C ./ c);
97
98
99 //DOUBLE .\ double
100
101 //R .\ c
102 assert_checkalmostequal(R .\ c, c ./ R);
103 //C .\ r
104 assert_checkalmostequal(C .\ r, r ./ C);
105 //C .\ c
106 assert_checkalmostequal(C .\ c, c ./ C);
107
108
109 //DOUBLE .\ DOUBLE
110
111 //R .\ R
112 assert_checkalmostequal(R .\ R, R ./ R);
113 //R .\ C
114 assert_checkalmostequal(R .\ C, C ./ R);
115 //C .\ R
116 assert_checkalmostequal(C .\ R, R ./ C);
117 //C .\ C
118 assert_checkalmostequal(C .\ C, C ./ C);