1 // ============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2016 - DIGITEO - Cedric Delamarre
4 // Copyright (C) 2016 - Scilab Enterprises - Pierre-Aime Agnel
6 // This file is distributed under the same license as the Scilab package.
7 // ============================================================================
9 // <-- CLI SHELL MODE -->
10 // <-- NO CHECK REF -->
21 assert_checkequal(a, colvect);
24 assert_checkequal(a, colvect);
27 assert_checkequal(a, colvect);
30 assert_checkequal(a, colvect);
33 assert_checkequal(a, colvect);
36 assert_checkequal(a, colvect);
40 assert_checkequal(a, linevect);
43 assert_checkequal(a, -1);
46 assert_checkequal(a, linevect);
49 assert_checkequal(a, linevect);
52 assert_checkequal(a, -1);
55 assert_checkequal(a, -1);
59 assert_checkequal(a, colvect);
62 assert_checkequal(a, colvect);
65 assert_checkequal(a, colvect);
68 assert_checkequal(a, colvect);
71 assert_checkequal(a, colvect);
74 assert_checkequal(a, colvect);
78 assert_checkequal(a, linevect);
81 assert_checkequal(a, -1);
84 assert_checkequal(a, linevect);
87 assert_checkequal(a, linevect);
90 assert_checkequal(a, -1);
93 assert_checkequal(a, -1);
97 assert_checkequal(a, linevect);
100 assert_checkequal(a, -1);
103 assert_checkequal(a, linevect);
106 assert_checkequal(a, linevect);
109 assert_checkequal(a, -1);
112 assert_checkequal(a, -1);
114 // Operators within matrices
118 assert_checkequal(a, expected);
122 assert_checkequal(a, expected);
124 a = [[2 3] .* ... // a comment
126 assert_checkequal(a, expected);
130 expected = [-2/3 -1];
131 assert_checkequal(a, expected);
135 assert_checkequal(a, expected);
137 a = [[2 3] ./ ... // a comment
139 assert_checkequal(a, expected);
143 expected = [-3/2 -1];
144 assert_checkequal(a, expected);
148 assert_checkequal(a, expected);
150 a = [[2 3] .\ ... // a comment
152 assert_checkequal(a, expected);
156 expected = [(2^(-3)), (3^(-3))];
157 assert_checkequal(a, expected);
161 assert_checkequal(a, expected);
163 a = [[2 3] .^ ... // a comment
165 assert_checkequal(a, expected);
169 expected = [(2-(-3)), (3-(-3))];
170 assert_checkequal(a, expected);
174 assert_checkequal(a, expected);
176 a = [[2 3] - ... // a comment
178 assert_checkequal(a, expected);
182 expected = [(2+(-3)), (3+(-3))];
183 assert_checkequal(a, expected);
187 assert_checkequal(a, expected);
189 a = [[2 3] + ... // a comment
191 assert_checkequal(a, expected);
195 expected = [(2*(-3))];
196 assert_checkequal(a, expected);
200 assert_checkequal(a, expected);
202 a = [2 * ... // a comment
204 assert_checkequal(a, expected);
208 expected = [(2/(-3))];
209 assert_checkequal(a, expected);
213 assert_checkequal(a, expected);
215 a = [2 / ... // a comment
217 assert_checkequal(a, expected);
221 expected = [(2\(-3))];
222 assert_checkequal(a, expected);
226 assert_checkequal(a, expected);
228 a = [2 \ ... // a comment
230 assert_checkequal(a, expected);
234 expected = [(2^(-3))];
235 assert_checkequal(a, expected);
239 assert_checkequal(a, expected);
241 a = [2 ^ ... // a comment
243 assert_checkequal(a, expected);
247 expected = [([2, 3].*.(-3))];
248 assert_checkequal(a, expected);
252 assert_checkequal(a, expected);
254 a = [[2 3] .*. ... // a comment
256 assert_checkequal(a, expected);
260 expected = -[2 3] / 3;
261 assert_checkequal(a, expected);
265 assert_checkequal(a, expected);
267 a = [[2 3] ./. ... // a comment
269 assert_checkequal(a, expected);
273 assert_checkequal(a, expected);
277 assert_checkequal(a, expected);
279 a = [-3 .\. ... // a comment
281 assert_checkequal(a, expected);
285 expected = [([2, 3]==(-3))];
286 assert_checkequal(a, expected);
290 assert_checkequal(a, expected);
292 a = [[2 3] == ... // a comment
294 assert_checkequal(a, expected);
298 expected = [([2, 3]~=(-3))];
299 assert_checkequal(a, expected);
303 assert_checkequal(a, expected);
305 a = [[2 3] ~= ... // a comment
307 assert_checkequal(a, expected);
311 expected = [([2, 3]<(-3))];
312 assert_checkequal(a, expected);
316 assert_checkequal(a, expected);
318 a = [[2 3] < ... // a comment
320 assert_checkequal(a, expected);
324 expected = [([2, 3]>(-3))];
325 assert_checkequal(a, expected);
329 assert_checkequal(a, expected);
331 a = [[2 3] > ... // a comment
333 assert_checkequal(a, expected);
337 expected = [([2, 3]<=(-3))];
338 assert_checkequal(a, expected);
342 assert_checkequal(a, expected);
344 a = [[2 3] <= ... // a comment
346 assert_checkequal(a, expected);
350 expected = [([2, 3]>=(-3))];
351 assert_checkequal(a, expected);
355 assert_checkequal(a, expected);
357 a = [[2 3] >= ... // a comment
359 assert_checkequal(a, expected);
361 // http://bugzilla.scilab.org/14361 :
362 // --------------------------------
363 a=[1; .../* a comment */
365 assert_checkequal(a, colvect);
366 a=[1;.../* a comment */
368 assert_checkequal(a, colvect);
369 a=[1; .../* a comment */
371 assert_checkequal(a, colvect);
372 a=[1;.../* a comment */
374 assert_checkequal(a, colvect);
375 a=[1; .../* a comment */
377 assert_checkequal(a, colvect);
378 a=[1;.../* a comment */
380 assert_checkequal(a, colvect);
382 a=[1 .../* a comment */
384 assert_checkequal(a, linevect);
385 a=[1.../* a comment */
387 assert_checkequal(a, -1);
388 a=[1 .../* a comment */
390 assert_checkequal(a, linevect);
391 a=[1.../* a comment */
393 assert_checkequal(a, linevect);
394 a=[1 .../* a comment */
396 assert_checkequal(a, -1);
397 a=[1.../* a comment */
399 assert_checkequal(a, -1);
401 // Operators within matrices
403 a = [[2 3] .* ... /* a comment */
406 assert_checkequal(a, expected);
410 a = [[2 3] ./ ... /* a comment */
412 expected = [-2/3 -1];
413 assert_checkequal(a, expected);
416 a = [[2 3] .\ ... /* a comment */
418 expected = [-3/2 -1];
419 assert_checkequal(a, expected);
422 a = [[2 3] .^ ... /* a comment */
424 expected = [(2^(-3)), (3^(-3))];
425 assert_checkequal(a, expected);
428 a = [[2 3] - ... /* a comment */
430 expected = [(2-(-3)), (3-(-3))];
431 assert_checkequal(a, expected);
434 a = [[2 3] + ... /* a comment */
436 expected = [(2+(-3)), (3+(-3))];
437 assert_checkequal(a, expected);
440 a = [2 * ... /* a comment */
442 expected = [(2*(-3))];
443 assert_checkequal(a, expected);
446 a = [2 / ... /* a comment */
448 expected = [(2/(-3))];
449 assert_checkequal(a, expected);
452 a = [2 \ ... /* a comment */
454 expected = [(2\(-3))];
455 assert_checkequal(a, expected);
458 a = [2 ^ ... /* a comment */
460 expected = [(2^(-3))];
461 assert_checkequal(a, expected);
464 a = [[2 3] .*. ... /* a comment */
466 expected = [([2, 3].*.(-3))];
467 assert_checkequal(a, expected);
470 a = [[2 3] ./. ... /* a comment */
472 expected = [([2, 3] ./. (-3))];
473 assert_checkequal(a, expected);
476 a = [-3 .\. ... /* a comment */
478 assert_checkequal(a, expected);
481 a = [[2 3] == ... /* a comment */
483 expected = [([2, 3]==(-3))];
484 assert_checkequal(a, expected);
487 a = [[2 3] ~= ... /* a comment */
489 expected = [([2, 3]~=(-3))];
490 assert_checkequal(a, expected);
493 a = [[2 3] < ... /* a comment */
495 expected = [([2, 3]<(-3))];
496 assert_checkequal(a, expected);
499 a = [[2 3] > ... /* a comment */
501 expected = [([2, 3]>(-3))];
502 assert_checkequal(a, expected);
505 a = [[2 3] <= ... /* a comment */
507 expected = [([2, 3]<=(-3))];
508 assert_checkequal(a, expected);
511 a = [[2 3] >= ... /* a comment */
513 expected = [([2, 3]>=(-3))];
514 assert_checkequal(a, expected);
516 // Comments on several lines
517 a=[1; .../* a comment
520 assert_checkequal(a, colvect);
524 assert_checkequal(a, colvect);
525 a=[1; .../* a comment
528 assert_checkequal(a, colvect);
532 assert_checkequal(a, colvect);
533 a=[1; .../* a comment
536 assert_checkequal(a, colvect);
540 assert_checkequal(a, colvect);
545 assert_checkequal(a, linevect);
549 assert_checkequal(a, -1);
553 assert_checkequal(a, linevect);
557 assert_checkequal(a, linevect);
561 assert_checkequal(a, -1);
565 assert_checkequal(a, -1);
567 // Operators within matrices
569 a = [[2 3] .* ... /* a comment
573 assert_checkequal(a, expected);
576 a = [[2 3] ./ ... /* a comment
579 expected = [-2/3 -1];
580 assert_checkequal(a, expected);
583 a = [[2 3] .\ ... /* a comment
586 expected = [-3/2 -1];
587 assert_checkequal(a, expected);
590 a = [[2 3] .^ ... /* a comment
593 expected = [(2^(-3)), (3^(-3))];
594 assert_checkequal(a, expected);
597 a = [[2 3] - ... /* a comment
600 expected = [(2-(-3)), (3-(-3))];
601 assert_checkequal(a, expected);
604 a = [[2 3] + ... /* a comment
607 expected = [(2+(-3)), (3+(-3))];
608 assert_checkequal(a, expected);
611 a = [2 * ... /* a comment
614 expected = [(2*(-3))];
615 assert_checkequal(a, expected);
618 a = [2 / ... /* a comment
621 expected = [(2/(-3))];
622 assert_checkequal(a, expected);
625 a = [2 \ ... /* a comment
628 expected = [(2\(-3))];
629 assert_checkequal(a, expected);
632 a = [2 ^ ... /* a comment
635 expected = [(2^(-3))];
636 assert_checkequal(a, expected);
639 a = [[2 3] .*. ... /* a comment
642 expected = [([2, 3].*.(-3))];
643 assert_checkequal(a, expected);
646 a = [[2 3] ./. ... /* a comment
649 expected = [([2, 3]./.(-3))];
650 assert_checkequal(a, expected);
653 a = [ -3 .\. ... /* a comment
656 assert_checkequal(a, expected);
659 a = [[2 3] == ... /* a comment
662 expected = [([2, 3]==(-3))];
663 assert_checkequal(a, expected);
666 a = [[2 3] ~= ... /* a comment
669 expected = [([2, 3]~=(-3))];
670 assert_checkequal(a, expected);
673 a = [[2 3] < ... /* a comment
676 expected = [([2, 3]<(-3))];
677 assert_checkequal(a, expected);
680 a = [[2 3] > ... /* a comment
683 expected = [([2, 3]>(-3))];
684 assert_checkequal(a, expected);
687 a = [[2 3] <= ... /* a comment
690 expected = [([2, 3]<=(-3))];
691 assert_checkequal(a, expected);
694 a = [[2 3] >= ... /* a comment
697 expected = [([2, 3]>=(-3))];
698 assert_checkequal(a, expected);
700 // Special behaviour of ... with + and -
704 assert_checkequal(a, expected);
709 assert_checkequal(a, expected);
714 assert_checkequal(a, expected);
719 assert_checkequal(a, expected);
724 assert_checkequal(a, expected);
729 assert_checkequal(a, expected);
731 // Case with multiline comment
732 str_cmd = ["a = [1 -... /* the start of a";
733 "multiline comment */ 2 3]"]; // this currently generates an error
734 assert_checktrue(execstr(str_cmd, "errcatch") <> 0);
736 // --------------------------------------------
738 // bug_14374 comments in SHELLMODE
739 // Testing if shellmode execution with command
740 // convstr a u // a comment
741 // convstr a /* a comment */
742 // convstr a u /* some text
743 // ending comment here */
744 exec(SCI + "/modules/ast/tests/nonreg_tests/bug_14374.tst");
746 // Bug 7646: matrix transpose extraction
747 exec(SCI + "/modules/ast/tests/nonreg_tests/bug_7646.tst");
749 // Bug 14662: matrix concatenation with simple quote and space led to a parser error
750 exec(SCI + "/modules/ast/tests/nonreg_tests/bug_14662.tst");
752 // Bug 14667: multi line string in matrix generated a non terminal parser state
753 exec(SCI + "/modules/ast/tests/nonreg_tests/bug_14667.tst");