* Bug 15884 fixed: bode() layout improved
[scilab.git] / scilab / modules / overloading / tests / unit_tests / rational.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2009 - DIGITEO
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- CLI SHELL MODE -->
8 s=poly(0,"s");
9 z = s^0;
10 h=1/(2*s);
11 assert_checkequal(size(h), [1 1]);
12 assert_checkequal(h.num, 1*z);
13 assert_checkequal(h.den, 2*s);
14 //basic operations with 2D matrices
15 H=[h h];
16 assert_checkequal(H.num, [1 1].*z);
17 assert_checkequal(H.den, [2*s 2*s]);
18 H=[h;h];
19 assert_checkequal(H.num, [1;1].*z);
20 assert_checkequal(H.den, [2*s;2*s]);
21 H=[h 3];
22 assert_checkequal(H.num, [1*z 3]);
23 assert_checkequal(H.den, [2*s 1]);
24 H=[h;5];
25 assert_checkequal(H.num, [1*z;5]);
26 assert_checkequal(H.den, [2*s;1]);
27 H=[3 h];
28 assert_checkequal(H.num, [3 1*z]);
29 assert_checkequal(H.den, [1 2*s]);
30 H=[5;h];
31 assert_checkequal(H.num, [5;1*z]);
32 assert_checkequal(H.den, [1;2*s]);
33 H=[3 h;s 2];
34 assert_checkequal(H(1,1), rlist(3,1));
35 assert_checkequal(H(1,2), h);
36 assert_checkequal(H(1, [2 1]), [h rlist(3,1)]);
37 assert_checkequal(H(1, [2 2]), [h h]);
38 assert_checkequal(H(1,:), [rlist(3,1) h]);
39 assert_checkequal(H(:,1), [rlist(3,1); s]);
40 assert_checkequal(H([2 1], :), [s rlist(2,1);rlist(3,1) h]);
41 assert_checkequal(H([1 1], :), [rlist(3,1) h;rlist(3,1) h]);
42 assert_checkequal(matrix(H, -1, 1), [3*z;s;h;2*z]);
43 H=h;H(1,3)=1/s;
44 assert_checkequal(H.num, [1 0 1].*z);
45 assert_checkequal(H.den, [2*s 1 s]);
46 H=h;H(3,1)=1/s;
47 assert_checkequal(H.num, [1 0 1]'.*z);
48 assert_checkequal(H.den, [2*s 1 s]');
49 H=h;H(1,3)=1.5;
50 assert_checkequal(H.num, [1 0 1.5].*z);
51 assert_checkequal(H.den, [2*s 1 1]);
52 H=h;H(3,1)=1.5;
53 assert_checkequal(H.num, [1 0 1.5]'.*z);
54 assert_checkequal(H.den, [2*s 1 1]');
55 H=1.5;H(1,3)=1/s;
56 assert_checkequal(H.num, [1.5 0 1].*z);
57 assert_checkequal(H.den, [1 1 s]);
58 H=1.5;H(3,1)=1/s;
59 assert_checkequal(H.num, [1.5 0 1]'.*z);
60 assert_checkequal(H.den, [1 1 s]');
61 H=[h s;1 h];H(:,1)=[];
62 assert_checkequal(H, [s;h]);
63 H=[h s;1 h];H(2,:)=[];
64 assert_checkequal(H, [h s]);
65 H=h+h;c=coeff(H.den,1);
66 assert_checkequal(H.num/c, 1*z);
67 assert_checkequal(H.den/c, s);
68 H=h+1;
69 assert_checkequal(H.num, 1+2*s);
70 assert_checkequal(H.den, 2*s);
71 H=1+h;
72 assert_checkequal(H.num, 1+2*s);
73 assert_checkequal(H.den, 2*s);
74 H=h+[];
75 assert_checkequal(H, []);
76 H=[]+h;
77 assert_checkequal(H, []);
78 H=h+s;
79 assert_checkequal(H.num, 1+2*s^2);
80 assert_checkequal(H.den, 2*s);
81 H=s+h;
82 assert_checkequal(H.num, 1+2*s^2);
83 assert_checkequal(H.den, 2*s);
84 H=h-h;
85 assert_checkequal(H.num, 0*z);
86 assert_checkequal(H.den, 1*s^0);
87 H=h-1;
88 assert_checkequal(H.num, 1-2*s);
89 assert_checkequal(H.den, 2*s);
90 H=1-h;
91 assert_checkequal(H.num, -1+2*s);
92 assert_checkequal(H.den, 2*s);
93 H=[h h+1]-1;
94 assert_checkequal(H(1,1), h-1);
95 assert_checkequal(H(1,2), h);
96 H=[h h+1]-2*h;
97 assert_checkequal(H.num, [-2 -2+4*s]);
98 assert_checkequal(H.den, [4*s 4*s]);
99 H=-2*h+[h h+1];
100 assert_checkequal(H.num, [-2 -2+4*s]);
101 assert_checkequal(H.den, [4*s 4*s]);
102 // *
103 H=h*h;
104 assert_checkequal(H.num, 1*z);
105 assert_checkequal(H.den, 4*s^2);
106 H=h*2;
107 assert_checkequal(H.num, 2*z);
108 assert_checkequal(H.den, 2*s);
109 H=2*h;
110 assert_checkequal(H.num, 2*z);
111 assert_checkequal(H.den, 2*s);
112 H=h*s;
113 assert_checkequal(H.num, 1*z);
114 assert_checkequal(H.den, 2*z);
115 H=s*h;
116 assert_checkequal(H.num, 1*z);
117 assert_checkequal(H.den, 2*z);
118 H=[h h+1]*h;
119 assert_checkequal(H, [h*h (h+1)*h]);
120 H=h*[h h+1];
121 assert_checkequal(H, [h*h, (h+1)*h]);
122 H=[h h+1]*2;
123 assert_checkequal(H, [h*2, (h+1)*2]);
124 H=2*[h h+1];
125 assert_checkequal(H, [h*2, (h+1)*2]);
126 H=[h h+1]*s;
127 assert_checkequal(H, [h*s, (h+1)*s]);
128 H=s*[h h+1];
129 assert_checkequal(H, [h*s, (h+1)*s]);
130 H=[h 1;s 3]*[1;h];
131 assert_checkequal(H, [h+h;s+3*h]);
132 H=[h 1]*[h 1;s 3];
133 assert_checkequal(H, [h*h+s, h+3]);
134 H=[h 1;s 3]*[1;2];
135 assert_checkequal(H, [h+2;s+6]);
136 H=[2 1]*[h 1;s 3];
137 assert_checkequal(H, [2*h+s, 2+3]);
138 // .*
139 H=h.*h;
140 assert_checkequal(H.num, 1*z);
141 assert_checkequal(H.den, 4*s^2);
142 H=h.*2;
143 assert_checkequal(H.num, 2*z);
144 assert_checkequal(H.den, 2*s);
145 H=2 .*h;
146 assert_checkequal(H.num, 2*z);
147 assert_checkequal(H.den, 2*s);
148 H=h.*s;
149 assert_checkequal(H.num, 1*z);
150 assert_checkequal(H.den, 2*z);
151 H=s.*h;
152 assert_checkequal(H.num, 1*z);
153 assert_checkequal(H.den, 2*z);
154 H=[h h+1].*h;
155 assert_checkequal(H, [h*h (h+1)*h]);
156 H=h.*[h h+1];
157 assert_checkequal(H, [h*h (h+1)*h]);
158 H=[h h+1].*2;
159 assert_checkequal(H, [h*2, (h+1)*2]);
160 H=2 .*[h h+1];
161 assert_checkequal(H, [h*2, (h+1)*2]);
162 H=[h h+1].*s;
163 assert_checkequal(H, [h*s, (h+1)*s]);
164 H=s.*[h h+1];
165 assert_checkequal(H, [h*s, (h+1)*s]);
166 H=[3 h;s 2].*[3 h;s 2];
167 assert_checkequal(H, [9 h*h; s*s 4]);
168 // /
169 H=h/2;
170 assert_checkequal(H.num, 0.5*z);
171 assert_checkequal(H.den, 2*s);
172 H=h/s;
173 assert_checkequal(H.num, 1*z);
174 assert_checkequal(H.den, 2*s^2);
175 H=h/(h+1);
176 assert_checkequal(H.num, 2*z);
177 assert_checkequal(H.den, 2+4*s);
178 H=[h h-1]/2;
179 assert_checkequal(H, [h/2 (h-1)/2]);
180 H=[h h-1]/s;
181 assert_checkequal(H, [h/s (h-1)/s]);
182 H=1/h;
183 assert_checkequal(H.num, 2*s);
184 assert_checkequal(H.den, 1*z);
185 H=[1 2]/h;
186 assert_checkequal(H, [1/h 2/h]);
187 H=[s+1 s-2]/h;
188 assert_checkequal(H, [(s+1)/h (s-2)/h]);
189 H=[h+1 (h+1)*(h-1)]/h;
190 assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]);
191 H=(eye(2,2)/[3 h;s 2])*[3 h;s 2];
192 assert_checkequal(coeff(H.num)./(coeff(H.den, 0) + coeff(H.den, 2)), eye(2,2));
193 // ./
194 H=h./2;
195 assert_checkequal(H.num, 0.5*z);
196 assert_checkequal(H.den, 2*s);
197 H=h./s;
198 assert_checkequal(H.num, 1*z);
199 assert_checkequal(H.den, 2*s^2);
200 H=h./(h+1);
201 assert_checkequal(H.num, 2*z);
202 assert_checkequal(H.den, 2+4*s);
203 H=[h h-1]./2;
204 assert_checkequal(H, [h/2 (h-1)/2]);
205 H=[h h-1]./s;
206 assert_checkequal(H, [h/s (h-1)/s]);
207 H=1 ./h;
208 assert_checkequal(H.num, 2*s);
209 assert_checkequal(H.den, 1*z);
210 H=[1 2]./h;
211 assert_checkequal(H, [1/h 2/h]);
212 H=[s+1 s-2]./h;
213 assert_checkequal(H, [(s+1)/h (s-2)/h]);
214 H=[h+1 (h+1)*(h-1)]./h;
215 assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]);
216 H=[3 h;s 2]./[3 h;s 2];
217 assert_checkequal(coeff(H.num)./coeff(H.den), ones(2,2));
218 // .\
219 H=2 .\h;
220 assert_checkequal(H.num, 0.5*z);
221 assert_checkequal(H.den, 2*s);
222 H=s.\h;
223 assert_checkequal(H.num, 1*z);
224 assert_checkequal(H.den, 2*s^2);
225 H=(h+1).\h;
226 assert_checkequal(H.num, 2*z);
227 assert_checkequal(H.den, 2+4*s);
228 H=2 .\[h h-1];
229 assert_checkequal(H, [h/2 (h-1)/2]);
230 H=s.\[h h-1];
231 assert_checkequal(H, [h/s (h-1)/s]);
232 H=1 ./h;
233 assert_checkequal(H.num, 2*s);
234 assert_checkequal(H.den, 1*z);
235 H=h.\[1 2];
236 assert_checkequal(H, [1/h 2/h]);
237 H=h.\[s+1 s-2];
238 assert_checkequal(H, [(s+1)/h (s-2)/h]);
239 H=h.\[h+1 (h+1)*(h-1)];
240 assert_checkequal(H, [(h+1)/h ((h+1)*(h-1))/h]);
241 H=[3 h;s 2]./[3 h;s 2];
242 assert_checkequal(coeff(H.num)./coeff(H.den), ones(2,2));
243 // hypermatrices of rationnals
244 clear H;H(1,1,2)=h;
245 assert_checkequal(H(1,1,1), rlist(0, 1, []));
246 assert_checkequal(H(1,1,2), h);
247 H(2,1,2)=h+1;
248 assert_checkequal(size(H), [2 1 2]);
249 assert_checkequal(H(:,1,1), rlist([0; 0], [1; 1]));
250 assert_checkequal(H([2 2], 1, 2), [h+1;h+1]);
251 clear H;H(1,1,2)=h;H(2,1,1)=1;
252 assert_checkequal(H(:,1,1), rlist([0; 1], [1; 1]));
253 assert_checkequal(H(:,1,2), [h;0]);
254 clear H;H(1,1,2)=h;H(1,1,:)=3;
255 assert_checkequal(H(1,1,1), rlist(3,1));
256 assert_checkequal(H(1,1,2), rlist(3,1));
257 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;
258 assert_checkequal(H(1:2,1,1), rlist([%s;%s], [1;1]));
259 clear H;H(2,2,2)=s;H(2,1,1)=h;
260 assert_checkequal(H(:,:,1), [0 0;h 0]);
261 assert_checkequal(H(:,:,2), rlist([0 0;0 s], [1 1;1 1]));
262 clear H;H(2,2,2)=8;H(2,1,1)=h;
263 assert_checkequal(H(:,:,1), [0 0;h 0]);
264 assert_checkequal(H(:,:,2), rlist([0 0;0 8], [1 1;1 1]));
265 clear H;H(2,2,2)=8;H(2,1,1)=h;
266 H(:,:,1)=[];
267 assert_checkequal(H, rlist([0 0;0 8], [1 1;1 1]));
268 clear H;H(2,2,2)=8;H(2,1,1)=h;
269 H2=H(2,:,:);H(1,:,:)=[];
270 assert_checkequal(H, H2);
271 clear H;H(2,2,2)=8;H(2,1,1)=h;
272 H2=H(:,2,:);H(:,1,:)=[];
273 assert_checkequal(H, H2);
274 clear H;H(2,2,2)=h;H=H+1;
275 assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1]));
276 assert_checkequal(H(:,:,2), [1 1;1 h+1]);
277 clear H;H(2,2,2)=h;H=1+H;
278 assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1]));
279 assert_checkequal(H(:,:,2), [1 1;1 h+1]);
280 clear H;H(2,2,2)=h;H=H+s;
281 assert_checkequal(H(:,:,1), rlist([s s;s s], [1 1;1 1]));
282 assert_checkequal(H(:,:,2), [s s;s h+s]);
283 clear H;H(2,2,2)=h;H=s+H;
284 assert_checkequal(H(:,:,1), rlist([s s; s s], [1 1;1 1]));
285 assert_checkequal(H(:,:,2), [s s;s h+s]);
286 clear H;H(2,2,2)=h;H=H-1;
287 assert_checkequal(H(:,:,1), -1*rlist([1 1;1 1], [1 1;1 1]));
288 assert_checkequal(H(:,:,2), [-1 -1;-1 h-1]);
289 clear H;H(2,2,2)=h;H=1-H;
290 assert_checkequal(H(:,:,1), rlist([1 1;1 1], [1 1;1 1]));
291 assert_checkequal(H(:,:,2), [1 1;1 1-h]);
292 clear H;H(2,2,2)=h;H=H-s;
293 assert_checkequal(H(:,:,1), rlist([-s -s;-s -s], [1 1;1 1]));
294 assert_checkequal(H(:,:,2), [-s -s;-s h-s]);
295 clear H;H(2,2,2)=h;H=s-H;
296 assert_checkequal(H(:,:,1), rlist([s s;s s], [1 1;1 1]));
297 assert_checkequal(H(:,:,2), [s s;s -h+s]);
298 clear H;H(2,2,2)=s;H(2,1,1)=h;H=H+H;
299 assert_checkequal(H(:,:,1), [0 0;h+h 0]);
300 assert_checkequal(H(:,:,2), rlist([0 0;0 s+s], [1 1;1 1]));
301 clear H;H(2,2,2)=s;H(2,1,1)=h;H=H-H;
302 assert_checkequal(H(:,:,1), [0 0;h-h 0]);
303 assert_checkequal(H(:,:,2), rlist([0 0;0 0], [1 1;1 1]));
304 // *
305 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*h;
306 assert_checkequal(H(:,:,1), [s*h;s*h]);
307 assert_checkequal(H(:,:,2), [h*h; 0/1]);
308 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*2;
309 assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1]));
310 assert_checkequal(H(:,:,2), [h*2;0]);
311 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=2*H;
312 assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1]));
313 assert_checkequal(H(:,:,2), [h*2;0]);
314 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H*s;
315 assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1]));
316 assert_checkequal(H(:,:,2), [h*s;0]);
317 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=s*H;
318 assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1]));
319 assert_checkequal(H(:,:,2), [h*s;0]);
320 // .*
321 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*h;
322 assert_checkequal(H(:,:,1), [s*h;s*h]);
323 assert_checkequal(H(:,:,2), [h*h;0/1]);
324 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=h.*H;
325 assert_checkequal(H(:,:,1), [s*h;s*h]);
326 assert_checkequal(H(:,:,2), [h*h;0/1]);
327 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*2;
328 assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1]));
329 assert_checkequal(H(:,:,2), [h*2;0]);
330 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=2 .*H;
331 assert_checkequal(H(:,:,1), rlist([s*2;s*2], [1;1]));
332 assert_checkequal(H(:,:,2), [h*2;0]);
333 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*s;
334 assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1]));
335 assert_checkequal(H(:,:,2), [h*s;0]);
336 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=s.*H;
337 assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1]));
338 assert_checkequal(H(:,:,2), [h*s;0]);
339 clear H;H(1,1,2)=h;H(1:2,1,1)=%s;H=H.*H;
340 assert_checkequal(H(:,:,1), rlist([s*s;s*s], [1;1]));
341 assert_checkequal(H(:,:,2), [h*h;0]);