[ast] upgrade sparse extraction after 5dc990d1
[scilab.git] / scilab / modules / ast / tests / nonreg_tests / bug_14487.tst
index 71395bc..a1a11f6 100644 (file)
@@ -16,6 +16,8 @@
 // <-- Short Description -->
 // Matrix indexing is not coherent with MATLAB convention
 
+//full
+
 x=rand(); // scalar
 i1=ones(1,4);
 i2=ones(2,4);
@@ -60,3 +62,86 @@ assert_checkequal(size(x(i1)), [1 4]);
 assert_checkequal(size(x(i1')), [4 1]);
 assert_checkequal(size(x(i2)), [2 4]);
 assert_checkequal(size(x(i3)), [2 2 2]);
+
+//sparse
+
+x=sparse(rand());
+i1=ones(1,4);
+i2=ones(2,4);
+i3=ones(2,2,2);
+assert_checkequal(size(x(i1)), [1 4]);
+assert_checkequal(size(x(i1')), [4 1]);
+assert_checkequal(size(x(i2)), [2 4]);
+assert_checkequal(size(x(i3)), [8 1]);
+
+x=sparse(rand(1,4)); // row vector
+i1=ones(1,4);
+i2=ones(2,4);
+i3=ones(2,2,2);
+assert_checkequal(size(x(i1)), [1 4]);
+assert_checkequal(size(x(i1')), [1 4]);
+assert_checkequal(size(x(i2)), [2 4]);
+assert_checkequal(size(x(i3)), [8 1]);
+
+x=sparse(rand(4,1)); // column vector
+i1=ones(1,4);
+i2=ones(2,4);
+i3=ones(2,2,2);
+assert_checkequal(size(x(i1)), [4 1]);
+assert_checkequal(size(x(i1')), [4 1]);
+assert_checkequal(size(x(i2)), [2 4]);
+assert_checkequal(size(x(i3)), [8 1]);
+
+x=sparse(rand(3,3)); // matrix
+i1=ones(1,4);
+i2=ones(2,4);
+i3=ones(2,2,2);
+assert_checkequal(size(x(i1)), [1 4]);
+assert_checkequal(size(x(i1')), [4 1]);
+assert_checkequal(size(x(i2)), [2 4]);
+assert_checkequal(size(x(i3)), [8 1]);
+
+
+//sparse boolean
+
+x=sparse(rand()>0.5);
+i1=ones(1,4);
+i2=ones(2,4);
+i3=ones(2,2,2);
+assert_checkequal(size(x(i1)), [1 4]);
+assert_checkequal(size(x(i1')), [4 1]);
+assert_checkequal(size(x(i2)), [2 4]);
+assert_checkequal(size(x(i3)), [8 1]);
+
+x=sparse(rand(1,4)>0.5); // row vector
+i1=ones(1,4);
+i2=ones(2,4);
+i3=ones(2,2,2);
+assert_checkequal(size(x(i1)), [1 4]);
+assert_checkequal(size(x(i1')), [1 4]);
+assert_checkequal(size(x(i2)), [2 4]);
+assert_checkequal(size(x(i3)), [8 1]);
+
+x=sparse(rand(4,1)>0.5); // column vector
+i1=ones(1,4);
+i2=ones(2,4);
+i3=ones(2,2,2);
+assert_checkequal(size(x(i1)), [4 1]);
+assert_checkequal(size(x(i1')), [4 1]);
+assert_checkequal(size(x(i2)), [2 4]);
+assert_checkequal(size(x(i3)), [8 1]);
+
+x=sparse(rand(3,3)>0.5); // matrix
+i1=ones(1,4);
+i2=ones(2,4);
+i3=ones(2,2,2);
+assert_checkequal(size(x(i1)), [1 4]);
+assert_checkequal(size(x(i1')), [4 1]);
+assert_checkequal(size(x(i2)), [2 4]);
+assert_checkequal(size(x(i3)), [8 1]);
+
+
+
+
+
+