da4f7b5bffeada391fbeb43e65f2bca7e847197f
[scilab.git] / scilab / modules / ast / tests / unit_tests / implicitlist.dia.ref
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2013 - Scilab Enterprises - Cedric Delamarre
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9 //
10 //
11 // <-- CLI SHELL MODE -->
12 function checkCallOverload(mat)
13     assert_checkerror(mat, [], 999);
14 endfunction
15 // normal cases
16 assert_checkequal(1:3, [1 2 3]);
17 assert_checkequal(1:1:3, [1 2 3]);
18 assert_checkequal(1:2:3, [1 3]);
19 assert_checkequal(3:-1:1, [3 2 1]);
20 assert_checkequal(3:-2:1, [3 1]);
21 assert_checkequal(3:1, []);
22 assert_checkequal(3:2:1, []);
23 assert_checkequal(1:0:3, []);
24 // no finite cases
25 assert_checkequal(1:%inf, %nan);
26 assert_checkequal(1:%nan, %nan);
27 assert_checkequal(1:-%inf, []);
28 assert_checkequal(1:%inf:10, %nan);
29 assert_checkequal(1:%nan:10, %nan);
30 assert_checkequal(1:-%inf:10, []);
31 assert_checkequal(%inf:1, []);
32 assert_checkequal(%nan:1, %nan);
33 assert_checkequal(-%inf:1, %nan);
34 assert_checkequal(10:%inf:1, []);
35 assert_checkequal(10:%nan:1, %nan);
36 assert_checkequal(10:-%inf:1, %nan);
37 // int
38 i1 = int8(1);
39 i2 = int8(2);
40 i8 = int8(8);
41 assert_checkequal(i1:i2:i8, int8([1,3,5,7]));
42 checkCallOverload("i1:i2:8");
43 assert_checkequal(i1:2:i8,  int8([1,3,5,7]));
44 assert_checkequal(i1:2:8,   int8([1,3,5,7]));
45 assert_checkequal(1:i2:i8,  int8([1,3,5,7]));
46 assert_checkequal(1:i2:8,   int8([1,3,5,7]));
47 assert_checkequal(1:2:i8,   int8([1,3,5,7]));
48 assert_checkequal(1:2:8,    [1,3,5,7]);
49 assert_checkequal(i1:i8, int8(1:8));
50 assert_checkequal(i1:8,  int8(1:8));
51 assert_checkequal(1:i8,  int8(1:8));
52 assert_checkequal(1:8,   [1 2 3 4 5 6 7 8]);
53 ii1 = int16(1);
54 ii2 = int16(2);
55 ii8 = int16(8);
56 assert_checkequal(i1:i2:i8, int8([1,3,5,7]));
57 checkCallOverload("i1:i2:ii8");
58 checkCallOverload("i1:ii2:i8");
59 checkCallOverload("i1:ii2:ii8");
60 checkCallOverload("ii1:i2:i8");
61 checkCallOverload("ii1:i2:ii8");
62 checkCallOverload("ii1:ii2:i8");
63 assert_checkequal(ii1:ii2:ii8, int16([1,3,5,7]));
64 // bool
65 t = %t;
66 checkCallOverload("t:t:t");
67 checkCallOverload("t:t:8");
68 checkCallOverload("t:2:%t");
69 checkCallOverload("t:2:8");
70 checkCallOverload("1:t:%t");
71 checkCallOverload("1:t:8");
72 assert_checkerror("1:2:t", [], 10000);
73 // poly
74 assert_checktrue(execstr("$:$:$", "errcatch") == 0);
75 assert_checktrue(execstr("$:$:8", "errcatch") == 0);
76 assert_checktrue(execstr("$:2:$", "errcatch") == 0);
77 assert_checktrue(execstr("$:2:8", "errcatch") == 0);
78 assert_checktrue(execstr("1:$:$", "errcatch") == 0);
79 assert_checktrue(execstr("1:$:8", "errcatch") == 0);
80 assert_checktrue(execstr("1:2:$", "errcatch") == 0);
81 assert_checktrue(execstr("1:2:8", "errcatch") == 0);
82 assert_checktrue(execstr("$:$", "errcatch") == 0);
83 assert_checktrue(execstr("$:8", "errcatch") == 0);
84 assert_checktrue(execstr("2:$", "errcatch") == 0);
85 assert_checktrue(execstr("2:8", "errcatch") == 0);
86 // rational
87 t = 1/%s;
88 checkCallOverload("t:t:t");
89 checkCallOverload("t:t:8");
90 checkCallOverload("t:2:%t");
91 checkCallOverload("t:2:8");
92 checkCallOverload("1:t:%t");
93 checkCallOverload("1:t:8");
94 assert_checkerror("1:2:t", [], 10000);
95 // rational
96 t = list();
97 checkCallOverload("t:t:t");
98 checkCallOverload("t:t:8");
99 checkCallOverload("t:2:%t");
100 checkCallOverload("t:2:8");
101 checkCallOverload("1:t:%t");
102 checkCallOverload("1:t:8");
103 assert_checkerror("1:2:t", [], 10000);
104 // extraction
105 assert_checkerror("vect=1:3;vect(1:4)", gettext("Invalid index."));
106 assert_checkerror("vect=1:3;vect(4:-1:1)", gettext("Invalid index."));