fc16f3906b3ffd0cd36b799197794423a0573d50
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / permute.tst
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
11 // With a real matrix
12 x = [1 2 3; 4 5 6];
13 y = permute(x, [2 1]);
14
15 assert_checkequal(y, x');
16
17 // With an integer matrix
18 x = int32(x);
19 y = permute(x, [2 1]);
20
21 assert_checkequal(y, x');
22
23 // With a string matrix
24 x = string(x);
25 y = permute(x, [2 1]);
26
27 assert_checkequal(y, x');
28
29 // With a real hypermatrix
30 x = matrix(1:12, [2, 3, 2]);
31 y = permute(x, [3 1 2]);
32 refY(:, :, 1) = [1 2; 7 8];
33 refY(:, :, 2) = [3 4; 9 10];
34 refY(:, :, 3) = [5 6; 11 12];
35
36 assert_checkequal(y, refY);
37
38 // With an integer hypermatrix
39 x = int32(x);
40 y = permute(x, [3 1 2]);
41 refY = int32(refY);
42
43 assert_checkequal(y, refY);
44
45 // With a string hypermatrix
46 x = string(x);
47 y = permute(x, [3 1 2]);
48 refY = string(refY);
49
50 assert_checkequal(y, refY);
51
52 // Error checks
53 refMsg = msprintf(_("%s: Wrong size for input argument #%d: At least the size of input argument #%d expected.\n"), "permute", 2, 1);
54 assert_checkerror("permute(x, [1 2]);", refMsg);
55 refMsg = msprintf(_("%s: Wrong size for input argument #%d.\n"), "permute", 2);
56 assert_checkerror("permute(x, [1 2 4]);", refMsg);
57 assert_checkerror("permute(x, [1 2 3 5]);", refMsg);