ImplicitList creation corrected.
[scilab.git] / scilab / modules / ast / tests / unit_tests / implicitlist.tst
index 21bf234..e3a5e20 100644 (file)
 
 // <-- JVM NOT MANDATORY -->
 
+function checkCallOverload(mat)
+    assert_checkerror(mat, [], 144);
+endfunction
+
 // normal cases
 assert_checkequal(1:3, [1 2 3]);
 assert_checkequal(1:1:3, [1 2 3]);
@@ -37,3 +41,85 @@ assert_checkequal(-%inf:1, %nan);
 assert_checkequal(10:%inf:1, []);
 assert_checkequal(10:%nan:1, %nan);
 assert_checkequal(10:-%inf:1, %nan);
+
+// int
+i1 = int8(1);
+i2 = int8(2);
+i8 = int8(8);
+
+assert_checkequal(i1:i2:i8, int8([1,3,5,7]));
+checkCallOverload("i1:i2:8");
+assert_checkequal(i1:2:i8,  int8([1,3,5,7]));
+assert_checkequal(i1:2:8,   int8([1,3,5,7]));
+assert_checkequal(1:i2:i8,  int8([1,3,5,7]));
+assert_checkequal(1:i2:8,   int8([1,3,5,7]));
+assert_checkequal(1:2:i8,   int8([1,3,5,7]));
+assert_checkequal(1:2:8,    [1,3,5,7]);
+
+assert_checkequal(i1:i8, int8(1:8));
+assert_checkequal(i1:8,  int8(1:8));
+assert_checkequal(1:i8,  int8(1:8));
+assert_checkequal(1:8,   [1 2 3 4 5 6 7 8]);
+
+ii1 = int16(1);
+ii2 = int16(2);
+ii8 = int16(8);
+
+assert_checkequal(i1:i2:i8, int8([1,3,5,7]));
+checkCallOverload("i1:i2:ii8");
+checkCallOverload("i1:ii2:i8");
+checkCallOverload("i1:ii2:ii8");
+checkCallOverload("ii1:i2:i8");
+checkCallOverload("ii1:i2:ii8");
+checkCallOverload("ii1:ii2:i8");
+assert_checkequal(ii1:ii2:ii8, int16([1,3,5,7]));
+
+// bool
+t = %t;
+checkCallOverload("t:t:t");
+checkCallOverload("t:t:8");
+checkCallOverload("t:2:%t");
+checkCallOverload("t:2:8");
+checkCallOverload("1:t:%t");
+checkCallOverload("1:t:8");
+assert_checkerror("1:2:t", [], 10000);
+
+// poly
+assert_checktrue(execstr("$:$:$", "errcatch") == 0);
+assert_checktrue(execstr("$:$:8", "errcatch") == 0);
+assert_checktrue(execstr("$:2:$", "errcatch") == 0);
+assert_checktrue(execstr("$:2:8", "errcatch") == 0);
+assert_checktrue(execstr("1:$:$", "errcatch") == 0);
+assert_checktrue(execstr("1:$:8", "errcatch") == 0);
+assert_checktrue(execstr("1:2:$", "errcatch") == 0);
+assert_checktrue(execstr("1:2:8", "errcatch") == 0);
+
+assert_checktrue(execstr("$:$", "errcatch") == 0);
+assert_checktrue(execstr("$:8", "errcatch") == 0);
+assert_checktrue(execstr("2:$", "errcatch") == 0);
+assert_checktrue(execstr("2:8", "errcatch") == 0);
+
+// rational
+t = 1/%s;
+checkCallOverload("t:t:t");
+checkCallOverload("t:t:8");
+checkCallOverload("t:2:%t");
+checkCallOverload("t:2:8");
+checkCallOverload("1:t:%t");
+checkCallOverload("1:t:8");
+assert_checkerror("1:2:t", [], 10000);
+
+// rational
+t = list();
+checkCallOverload("t:t:t");
+checkCallOverload("t:t:8");
+checkCallOverload("t:2:%t");
+checkCallOverload("t:2:8");
+checkCallOverload("1:t:%t");
+checkCallOverload("1:t:8");
+assert_checkerror("1:2:t", [], 10000);
+
+
+
+
+