* Bug 14487 fixed: matrix indexing is now coherent with MATLAB
[scilab.git] / scilab / modules / ast / tests / nonreg_tests / bug_14487.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2018 - St├ęphane MOTTELET
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 // <-- NO CHECK REF -->
10 //
11 // <-- Non-regression test for bug 14487 -->
12 //
13 // <-- Bugzilla URL -->
14 // http://bugzilla.scilab.org/14487
15 //
16 // <-- Short Description -->
17 // Matrix indexing is not coherent with MATLAB convention
18
19 x=rand(); // scalar
20 i1=ones(1,4);
21 i2=ones(2,4);
22 i3=ones(2,2,2);
23 assert_checkequal(size(x(i1)), [1 4]);
24 assert_checkequal(size(x(i1')), [4 1]);
25 assert_checkequal(size(x(i2)), [2 4]);
26 assert_checkequal(size(x(i3)), [2 2 2]);
27
28 x=rand(1,4); // row vector
29 i1=ones(1,4);
30 i2=ones(2,4);
31 i3=ones(2,2,2);
32 assert_checkequal(size(x(i1)), [1 4]);
33 assert_checkequal(size(x(i1')), [1 4]);
34 assert_checkequal(size(x(i2)), [2 4]);
35 assert_checkequal(size(x(i3)), [2 2 2]);
36
37 x=rand(4,1); // column vector
38 i1=ones(1,4);
39 i2=ones(2,4);
40 i3=ones(2,2,2);
41 assert_checkequal(size(x(i1)), [4 1]);
42 assert_checkequal(size(x(i1')), [4 1]);
43 assert_checkequal(size(x(i2)), [2 4]);
44 assert_checkequal(size(x(i3)), [2 2 2]);
45
46 x=rand(3,3); // matrix
47 i1=ones(1,4);
48 i2=ones(2,4);
49 i3=ones(2,2,2);
50 assert_checkequal(size(x(i1)), [1 4]);
51 assert_checkequal(size(x(i1')), [4 1]);
52 assert_checkequal(size(x(i2)), [2 4]);
53 assert_checkequal(size(x(i3)), [2 2 2]);
54
55 x=rand(3,3,3); // hypermatrix
56 i1=ones(1,4);
57 i2=ones(2,4);
58 i3=ones(2,2,2);
59 assert_checkequal(size(x(i1)), [1 4]);
60 assert_checkequal(size(x(i1')), [4 1]);
61 assert_checkequal(size(x(i2)), [2 4]);
62 assert_checkequal(size(x(i3)), [2 2 2]);