1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2016 - DIGITEO - Cedric Delamarre
5 // This file is distributed under the same license as the Scilab package.
6 // ============================================================================
7 // <-- CLI SHELL MODE -->
14 assert_checkequal(a, colvect);
17 assert_checkequal(a, colvect);
20 assert_checkequal(a, colvect);
23 assert_checkequal(a, colvect);
26 assert_checkequal(a, colvect);
29 assert_checkequal(a, colvect);
32 assert_checkequal(a, linevect);
35 assert_checkequal(a, -1);
38 assert_checkequal(a, linevect);
41 assert_checkequal(a, linevect);
44 assert_checkequal(a, -1);
47 assert_checkequal(a, -1);
50 assert_checkequal(a, colvect);
53 assert_checkequal(a, colvect);
56 assert_checkequal(a, colvect);
59 assert_checkequal(a, colvect);
62 assert_checkequal(a, colvect);
65 assert_checkequal(a, colvect);
68 assert_checkequal(a, linevect);
71 assert_checkequal(a, -1);
74 assert_checkequal(a, linevect);
77 assert_checkequal(a, linevect);
80 assert_checkequal(a, -1);
83 assert_checkequal(a, -1);
86 assert_checkequal(a, linevect);
89 assert_checkequal(a, -1);
92 assert_checkequal(a, linevect);
95 assert_checkequal(a, linevect);
98 assert_checkequal(a, -1);
101 assert_checkequal(a, -1);
102 // Operators within matrices
106 assert_checkequal(a, expected);
109 assert_checkequal(a, expected);
110 a = [[2 3] .* ... // a comment
112 assert_checkequal(a, expected);
115 expected = [-2/3 -1];
116 assert_checkequal(a, expected);
119 assert_checkequal(a, expected);
120 a = [[2 3] ./ ... // a comment
122 assert_checkequal(a, expected);
125 expected = [-3/2 -1];
126 assert_checkequal(a, expected);
129 assert_checkequal(a, expected);
130 a = [[2 3] .\ ... // a comment
132 assert_checkequal(a, expected);
135 expected = [(2^(-3)), (3^(-3))];
136 assert_checkequal(a, expected);
139 assert_checkequal(a, expected);
140 a = [[2 3] .^ ... // a comment
142 assert_checkequal(a, expected);
145 expected = [(2-(-3)), (3-(-3))];
146 assert_checkequal(a, expected);
149 assert_checkequal(a, expected);
150 a = [[2 3] - ... // a comment
152 assert_checkequal(a, expected);
155 expected = [(2+(-3)), (3+(-3))];
156 assert_checkequal(a, expected);
159 assert_checkequal(a, expected);
160 a = [[2 3] + ... // a comment
162 assert_checkequal(a, expected);
165 expected = [(2*(-3))];
166 assert_checkequal(a, expected);
169 assert_checkequal(a, expected);
170 a = [2 * ... // a comment
172 assert_checkequal(a, expected);
175 expected = [(2/(-3))];
176 assert_checkequal(a, expected);
179 assert_checkequal(a, expected);
180 a = [2 / ... // a comment
182 assert_checkequal(a, expected);
185 expected = [(2\(-3))];
186 assert_checkequal(a, expected);
189 assert_checkequal(a, expected);
190 a = [2 \ ... // a comment
192 assert_checkequal(a, expected);
195 expected = [(2^(-3))];
196 assert_checkequal(a, expected);
199 assert_checkequal(a, expected);
200 a = [2 ^ ... // a comment
202 assert_checkequal(a, expected);
205 expected = [([2, 3].*.(-3))];
206 assert_checkequal(a, expected);
209 assert_checkequal(a, expected);
210 a = [[2 3] .*. ... // a comment
212 assert_checkequal(a, expected);
215 expected = -[2 3] / 3;
216 assert_checkequal(a, expected);
219 assert_checkequal(a, expected);
220 a = [[2 3] ./. ... // a comment
222 assert_checkequal(a, expected);
225 assert_checkequal(a, expected);
228 assert_checkequal(a, expected);
229 a = [-3 .\. ... // a comment
231 assert_checkequal(a, expected);
234 expected = [([2, 3]==(-3))];
235 assert_checkequal(a, expected);
238 assert_checkequal(a, expected);
239 a = [[2 3] == ... // a comment
241 assert_checkequal(a, expected);
244 expected = [([2, 3]~=(-3))];
245 assert_checkequal(a, expected);
248 assert_checkequal(a, expected);
249 a = [[2 3] ~= ... // a comment
251 assert_checkequal(a, expected);
254 expected = [([2, 3]<(-3))];
255 assert_checkequal(a, expected);
258 assert_checkequal(a, expected);
259 a = [[2 3] < ... // a comment
261 assert_checkequal(a, expected);
264 expected = [([2, 3]>(-3))];
265 assert_checkequal(a, expected);
268 assert_checkequal(a, expected);
269 a = [[2 3] > ... // a comment
271 assert_checkequal(a, expected);
274 expected = [([2, 3]<=(-3))];
275 assert_checkequal(a, expected);
278 assert_checkequal(a, expected);
279 a = [[2 3] <= ... // a comment
281 assert_checkequal(a, expected);
284 expected = [([2, 3]>=(-3))];
285 assert_checkequal(a, expected);
288 assert_checkequal(a, expected);
289 a = [[2 3] >= ... // a comment
291 assert_checkequal(a, expected);
293 a=[1; .../* a comment */
295 assert_checkequal(a, colvect);
296 a=[1;.../* a comment */
298 assert_checkequal(a, colvect);
299 a=[1; .../* a comment */
301 assert_checkequal(a, colvect);
302 a=[1;.../* a comment */
304 assert_checkequal(a, colvect);
305 a=[1; .../* a comment */
307 assert_checkequal(a, colvect);
308 a=[1;.../* a comment */
310 assert_checkequal(a, colvect);
311 a=[1 .../* a comment */
313 assert_checkequal(a, linevect);
314 a=[1.../* a comment */
316 assert_checkequal(a, -1);
317 a=[1 .../* a comment */
319 assert_checkequal(a, linevect);
320 a=[1.../* a comment */
322 assert_checkequal(a, linevect);
323 a=[1 .../* a comment */
325 assert_checkequal(a, -1);
326 a=[1.../* a comment */
328 assert_checkequal(a, -1);
329 // Operators within matrices
331 a = [[2 3] .* ... /* a comment */
334 assert_checkequal(a, expected);
336 a = [[2 3] ./ ... /* a comment */
338 expected = [-2/3 -1];
339 assert_checkequal(a, expected);
341 a = [[2 3] .\ ... /* a comment */
343 expected = [-3/2 -1];
344 assert_checkequal(a, expected);
346 a = [[2 3] .^ ... /* a comment */
348 expected = [(2^(-3)), (3^(-3))];
349 assert_checkequal(a, expected);
351 a = [[2 3] - ... /* a comment */
353 expected = [(2-(-3)), (3-(-3))];
354 assert_checkequal(a, expected);
356 a = [[2 3] + ... /* a comment */
358 expected = [(2+(-3)), (3+(-3))];
359 assert_checkequal(a, expected);
361 a = [2 * ... /* a comment */
363 expected = [(2*(-3))];
364 assert_checkequal(a, expected);
366 a = [2 / ... /* a comment */
368 expected = [(2/(-3))];
369 assert_checkequal(a, expected);
371 a = [2 \ ... /* a comment */
373 expected = [(2\(-3))];
374 assert_checkequal(a, expected);
376 a = [2 ^ ... /* a comment */
378 expected = [(2^(-3))];
379 assert_checkequal(a, expected);
381 a = [[2 3] .*. ... /* a comment */
383 expected = [([2, 3].*.(-3))];
384 assert_checkequal(a, expected);
386 a = [[2 3] ./. ... /* a comment */
388 expected = [([2, 3] ./. (-3))];
389 assert_checkequal(a, expected);
391 a = [-3 .\. ... /* a comment */
393 assert_checkequal(a, expected);
395 a = [[2 3] == ... /* a comment */
397 expected = [([2, 3]==(-3))];
398 assert_checkequal(a, expected);
400 a = [[2 3] ~= ... /* a comment */
402 expected = [([2, 3]~=(-3))];
403 assert_checkequal(a, expected);
405 a = [[2 3] < ... /* a comment */
407 expected = [([2, 3]<(-3))];
408 assert_checkequal(a, expected);
410 a = [[2 3] > ... /* a comment */
412 expected = [([2, 3]>(-3))];
413 assert_checkequal(a, expected);
415 a = [[2 3] <= ... /* a comment */
417 expected = [([2, 3]<=(-3))];
418 assert_checkequal(a, expected);
420 a = [[2 3] >= ... /* a comment */
422 expected = [([2, 3]>=(-3))];
423 assert_checkequal(a, expected);
424 // Comments on several lines
425 a=[1; .../* a comment
428 assert_checkequal(a, colvect);
432 assert_checkequal(a, colvect);
433 a=[1; .../* a comment
436 assert_checkequal(a, colvect);
440 assert_checkequal(a, colvect);
441 a=[1; .../* a comment
444 assert_checkequal(a, colvect);
448 assert_checkequal(a, colvect);
452 assert_checkequal(a, linevect);
456 assert_checkequal(a, -1);
460 assert_checkequal(a, linevect);
464 assert_checkequal(a, linevect);
468 assert_checkequal(a, -1);
472 assert_checkequal(a, -1);
473 // Operators within matrices
475 a = [[2 3] .* ... /* a comment
479 assert_checkequal(a, expected);
481 a = [[2 3] ./ ... /* a comment
484 expected = [-2/3 -1];
485 assert_checkequal(a, expected);
487 a = [[2 3] .\ ... /* a comment
490 expected = [-3/2 -1];
491 assert_checkequal(a, expected);
493 a = [[2 3] .^ ... /* a comment
496 expected = [(2^(-3)), (3^(-3))];
497 assert_checkequal(a, expected);
499 a = [[2 3] - ... /* a comment
502 expected = [(2-(-3)), (3-(-3))];
503 assert_checkequal(a, expected);
505 a = [[2 3] + ... /* a comment
508 expected = [(2+(-3)), (3+(-3))];
509 assert_checkequal(a, expected);
511 a = [2 * ... /* a comment
514 expected = [(2*(-3))];
515 assert_checkequal(a, expected);
517 a = [2 / ... /* a comment
520 expected = [(2/(-3))];
521 assert_checkequal(a, expected);
523 a = [2 \ ... /* a comment
526 expected = [(2\(-3))];
527 assert_checkequal(a, expected);
529 a = [2 ^ ... /* a comment
532 expected = [(2^(-3))];
533 assert_checkequal(a, expected);
535 a = [[2 3] .*. ... /* a comment
538 expected = [([2, 3].*.(-3))];
539 assert_checkequal(a, expected);
541 a = [[2 3] ./. ... /* a comment
544 expected = [([2, 3]./.(-3))];
545 assert_checkequal(a, expected);
547 a = [ -3 .\. ... /* a comment
550 assert_checkequal(a, expected);
552 a = [[2 3] == ... /* a comment
555 expected = [([2, 3]==(-3))];
556 assert_checkequal(a, expected);
558 a = [[2 3] ~= ... /* a comment
561 expected = [([2, 3]~=(-3))];
562 assert_checkequal(a, expected);
564 a = [[2 3] < ... /* a comment
567 expected = [([2, 3]<(-3))];
568 assert_checkequal(a, expected);
570 a = [[2 3] > ... /* a comment
573 expected = [([2, 3]>(-3))];
574 assert_checkequal(a, expected);
576 a = [[2 3] <= ... /* a comment
579 expected = [([2, 3]<=(-3))];
580 assert_checkequal(a, expected);
582 a = [[2 3] >= ... /* a comment
585 expected = [([2, 3]>=(-3))];
586 assert_checkequal(a, expected);
587 // Special behaviour of ... with + and -
593 assert_checkequal(a, expected);
599 assert_checkequal(a, expected);
605 assert_checkequal(a, expected);
611 assert_checkequal(a, expected);
617 assert_checkequal(a, expected);
623 assert_checkequal(a, expected);
624 // Case with multiline comment
625 str_cmd = ["a = [1 -... /* the start of a";
626 "multiline comment */ 2 3]"]; // this currently generates an error
627 assert_checktrue(execstr(str_cmd, "errcatch") <> 0);
628 // bug_14374 comments in SHELLMODE
629 // Testing if shellmode execution with command
630 // convstr a u // a comment
631 // convstr a /* a comment */
632 // convstr a u /* some text
633 // ending comment here */
634 exec(SCI + "/modules/ast/tests/nonreg_tests/bug_14374.tst");
635 // Bug 7646: matrix transpose extraction
636 exec(SCI + "/modules/ast/tests/nonreg_tests/bug_7646.tst");
637 // Bug 14662: matrix concatenation with simple quote and space led to a parser error
638 exec(SCI + "/modules/ast/tests/nonreg_tests/bug_14662.tst");
639 // Bug 14667: multi line string in matrix generated a non terminal parser state
640 exec(SCI + "/modules/ast/tests/nonreg_tests/bug_14667.tst");