e81ac4c223b0e80d9a48fbe0bf4c49623066891b
[scilab.git] / scilab / modules / polynomials / tests / unit_tests / simp.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- CLI SHELL MODE -->
8 // =============================== polynomes ===================================
9 // =============================== real ========================================
10 s = poly(0,'s');
11 num = 2 * s^2  + 1;
12 den = 3 * s;
13 expectedN = 2 * s^2 + 1;
14 expectedD = 3 * s;
15 res = num/den;
16 assert_checkequal(res(2), expectedN);
17 assert_checkequal(res(3), expectedD);
18 num = 3 * s^3 + 4 * s^2 - s;
19 den = 2 *s + 1;
20 expectedN = 3 * s^3 + 4 * s^2 - s;
21 expectedD = 2 *s + 1;
22 res = num/den;
23 assert_checkequal(res(2), expectedN);
24 assert_checkequal(res(3), expectedD);
25 den = 2 * s;
26 expectedN = 3 * s^2 + 4* s - 1;
27 expectedD = 2 * s^0;
28 res = num/den;
29 assert_checkequal(res(2), expectedN);
30 assert_checkequal(res(3), expectedD);
31 num = 5 * %z^2 + 4 * %z;
32 den = 2 * %z;
33 expectedN = 5 * %z + 4;
34 expectedD = 2 * %z^0;
35 res = num/den;
36 assert_checkequal(res(2), expectedN);
37 assert_checkequal(res(3), expectedD);
38 num = [s, 2 * s^2];
39 den = [s, s];
40 expectedN = [1, 2 * s];
41 expectedD = [1 1].*s^0;
42 res = num./den;
43 assert_checkequal(res(2), expectedN);
44 assert_checkequal(res(3), expectedD);
45 num = [s; 2 * s^2];
46 den = [s; s];
47 expectedN = [1; 2 * s];
48 expectedD = [1; 1].* s^0;
49 res = num./den;
50 assert_checkequal(res(2), expectedN);
51 assert_checkequal(res(3), expectedD);
52 num = [2 * s, 4 * s^3; s^2, s];
53 den = [s, s^2; s^3, s];
54 expectedN = [2, 4 * s; 1, 1];
55 expectedD = [1, 1;s 1];
56 res = num./den;
57 assert_checkequal(res(2), expectedN);
58 assert_checkequal(res(3), expectedD);
59 num = (s + 1) * (s + 2);
60 den = s + 1;
61 expectedN = s + 2;
62 expectedD = 1 * s^0;
63 res = num/den;
64 assert_checkalmostequal(roots(res(2)), roots(expectedN), %eps)
65  ans  =
66  
67   T  
68 assert_checkequal(res(3), expectedD);
69 num = s + 1;
70 den = 2 * (s + 1);
71 expectedN = 0.5 * s^0;
72 expectedD = 1 * s^0;
73 res = num/den;
74 assert_checkequal(res(2), expectedN);
75 assert_checkequal(res(3), expectedD);
76 // =============================== complex =====================================
77 s = poly(0,'s');
78 num = 2 * %i * s^2  + 1;
79 den = 3 * %z;
80 assert_checkfalse(execstr("[n, d] = simp(num, den)", "errcatch") == 0);
81 refMsg = msprintf(_("%s: Wrong value for input argument #%d and #%d: Variable name of numerator and denominator must be the same.\n"), "simp", 1, 2);
82 assert_checkerror("[n, d] = simp(num, den)", refMsg);
83 assert_checkfalse(execstr("num/den", "errcatch") == 0);
84 refMsg = msprintf(_("%s: Wrong value for input argument #%d and #%d: Variable name of numerator and denominator must be the same.\n"), "simp", 1, 2);
85 assert_checkerror("num/den", refMsg);
86 den = 3*s;
87 res = num/den;
88 expectedN = 2 *%i * s^2 + 1;
89 expectedD = 3 * s;
90 assert_checkequal(res(2), expectedN);
91 assert_checkequal(res(3), expectedD);
92 num = 3 * s^3 +4 * s^2 - s;
93 den = 2 * %i *s + 1;
94 expectedN = 3 * s^3 +4 * s^2 - s;
95 expectedD = 2 * %i *s + 1;
96 res = num/den;
97 assert_checkequal(res(2), expectedN);
98 assert_checkequal(res(3), expectedD);
99 den = 2 * %i * s;
100 expectedN = 3 * s^2 +4 * s - 1;
101 expectedD = 2 * %i * %s^0;
102 res = num/den;
103 assert_checkequal(res(2), expectedN);
104 assert_checkequal(res(3), expectedD);
105 num = 5 * %z^2 + 4 * %i * %z;
106 den = 2 * %z;
107 expectedN = 5 * %z + 4 * %i;
108 expectedD = 2 * %z^0;
109 res = num/den;
110 assert_checkequal(res(2), expectedN);
111 assert_checkequal(res(3), expectedD);
112 num = [s, 2 * s^2];
113 den = [%i * s, s];
114 expectedN = [1, 2 * s];
115 expectedD = [%i, 1].*s^0;
116 res = num./den;
117 assert_checkequal(res(2), expectedN);
118 assert_checkequal(res(3), expectedD);
119 num = [s; 2 * s^2];
120 den = [%i * s; s];
121 expectedN = [1; 2 * s];
122 expectedD = [%i; 1]*s^0;
123 res = num./den;
124 assert_checkequal(res(2), expectedN);
125 assert_checkequal(res(3), expectedD);
126 num = [2 * s, 4 * %i * s^3; s^2, s];
127 den = [%i * s, s^2; s^3, s];
128 expectedN = [2, 4 * %i * s; 1, 1];
129 expectedD = [%i, 1; s, 1];
130 res = num./den;
131 assert_checkequal(res(2), expectedN);
132 assert_checkequal(res(3), expectedD);
133 num = (s + 1) * (s + 2 * %i);
134 den = s + 1;
135 expectedN = s + 2 * %i;
136 expectedD = 1 * s^0;
137 res = num/den;
138 assert_checkequal(res(2), expectedN);
139 assert_checkequal(res(3), expectedD);
140 num = (%i * s + 2) * (s + 1);
141 den = (%i * s + 2);
142 expectedN = s + 1;
143 expectedD = 1 * s^0;
144 res = num/den;
145 assert_checkequal(res(2), expectedN);
146 assert_checkequal(res(3), expectedD);
147 num = (%i * s + 2) * (s + 2);
148 den = s + 2;
149 expectedN = %i * s + 2;
150 expectedD = 1 * s^0;
151 res = num/den;
152 assert_checkequal(res(2), expectedN);
153 assert_checkequal(res(3), expectedD);
154 num = %i * s + 1;
155 den = 2 * (%i * s + 1);
156 expectedN = 1 * s^0;
157 expectedD = 2 * s^0;
158 res = num/den;
159 assert_checkequal(res(2), expectedN);
160 assert_checkequal(res(3), expectedD);
161 num = %i * s + 4;
162 den = %i * (%i * s + 4);
163 expectedN = %i*%s^0;
164 expectedD = -1;
165 res = num/den;
166 assert_checkequal(res(2), expectedN);
167 assert_checkalmostequal(coeff(res(3)), expectedD, %eps);