e59a612fe9c912a7b35c6bd1f40225e1abea5f68
[scilab.git] / scilab / modules / elementary_functions / tests / nonreg_tests / bug_12130.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2014 - 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 // <-- Non-regression test for bug 12130 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=12130
14 //
15 // <-- Short Description -->
16 // flipdim can now flip an input by blocks.
17
18
19 //---------------------------------------------------
20 // Double type
21 x = [0 1 2 3 4 5 6 7 8 9 10 11];
22 x = [x ; x];
23
24 ref1 = [11 10 9 8 7 6 5 4 3 2 1 0];
25 ref1 = [ref1 ; ref1];
26 y = flipdim(x, 2); // Present action.
27 assert_checkequal(y, ref1);
28
29 ref2 = [10 11   8 9   6 7   4 5   2 3   0 1];
30 ref2 = [ref2 ; ref2];
31 y = flipdim(x, 2, 2); // Block size = 2.
32 assert_checkequal(y, ref2);
33
34 ref3 = [9 10 11   6 7 8   3 4 5   0 1 2];
35 ref3 = [ref3 ; ref3];
36 y = flipdim(x, 2, 3);
37 assert_checkequal(y, ref3);
38
39 ref4 = [8 9 10 11   4 5 6 7   0 1 2 3];
40 ref4 = [ref4 ; ref4];
41 y = flipdim(x, 2, 4);
42 assert_checkequal(y, ref4);
43
44 ref5 = [6 7 8 9 10 11   0 1 2 3 4 5];
45 ref5 = [ref5 ; ref5];
46 y = flipdim(x, 2, 6);
47 assert_checkequal(y, ref5);
48
49
50 //---------------------------------------------------
51 // String type
52 x = string(x);
53 ref1 = string(ref1);
54 y = flipdim(x, 2); // Present action.
55 assert_checkequal(y, ref1);
56
57 ref2 = string(ref2);
58 y = flipdim(x, 2, 2); // Block size = 2.
59 assert_checkequal(y, ref2);
60
61 ref3 = string(ref3);
62 y = flipdim(x, 2, 3);
63 assert_checkequal(y, ref3);
64
65 ref4 = string(ref4);
66 y = flipdim(x, 2, 4);
67 assert_checkequal(y, ref4);
68
69 ref5 = string(ref5);
70 y = flipdim(x, 2, 6);
71 assert_checkequal(y, ref5);
72
73
74 // Error checks
75 refMsg = msprintf(_("%s: Wrong value for input argument #%d: A divisor of the selected dimension size expected.\n"), "flipdim", 3);
76 assert_checkerror("y = flipdim(x, 2, 5)", refMsg); // size(x) = [2 12] and 5 does not divide 12.
77