* Bug #13409 fixed - permute(x, dims) failed when dims was greater than the dimension...
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / permute.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 //
10 // With a real matrix
11 x = [1 2 3; 4 5 6];
12 y = permute(x, [2 1]);
13 assert_checkequal(y, x');
14 // With an integer matrix
15 x = int32(x);
16 y = permute(x, [2 1]);
17 assert_checkequal(y, x');
18 // With a string matrix
19 x = string(x);
20 y = permute(x, [2 1]);
21 assert_checkequal(y, x');
22 // With a complex matrix
23 x = [1 2 3; 4 5 6]*%i;
24 y = permute(x, [2 1]);
25 refY = [1 4; 2 5; 3 6]*%i;
26 assert_checkequal(y, refY);
27 // With a real hypermatrix
28 x = matrix(1:12, [2, 3, 2]);
29 y = permute(x, [3 1 2]);
30 clear refY
31 refY(:, :, 1) = [1 2; 7 8];
32 refY(:, :, 2) = [3 4; 9 10];
33 refY(:, :, 3) = [5 6; 11 12];
34 assert_checkequal(y, refY);
35 // With an integer hypermatrix
36 x = int32(x);
37 y = permute(x, [3 1 2]);
38 refY = int32(refY);
39 assert_checkequal(y, refY);
40 // With a string hypermatrix
41 x = string(x);
42 y = permute(x, [3 1 2]);
43 refY = string(refY);
44 assert_checkequal(y, refY);
45 // With a complex hypermatrix
46 x = matrix(1:12, [2, 3, 2])*%i;
47 y = permute(x, [3 1 2]);
48 clear refY
49 refY(:, :, 1) = [1 2; 7 8]*%i;
50 refY(:, :, 2) = [3 4; 9 10]*%i;
51 refY(:, :, 3) = [5 6; 11 12]*%i;
52 assert_checkequal(y, refY);
53 // Error checks
54 refMsg = msprintf(_("%s: Wrong size for input argument #%d: At least the size of input argument #%d expected.\n"), "permute", 2, 1);
55 assert_checkerror("permute(x, [1 2]);", refMsg);
56 refMsg = msprintf(_("%s: Wrong value for input argument #%d: Must be a valid permutation vector.\n"), "permute", 2);
57 assert_checkerror("permute(x, [1 2 4]);", refMsg);
58 assert_checkerror("permute(x, [1 2 3 5]);", refMsg);