Change error message in %r_cumsum.
[scilab.git] / scilab / modules / overloading / tests / nonreg_tests / bug_8098.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS
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 8098 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=8098
14 //
15 // <-- Short Description -->
16 //    cumsum() did not apply to rational matrices.
17 // =============================================================================
18
19 s = poly(0, "s");
20 r = [1/s 1/s; 1/s^2 1];
21
22 assert_checkequal(cumsum(r), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]);
23 assert_checkequal(cumsum(r,"*"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]);
24 assert_checkequal(cumsum(r, 1), [1 1;1+s 1+s]./[s s;s^2 s]);
25 assert_checkequal(cumsum(r, 2), [1 2;1 1+s^2]./[s s;s^2 s^2]);
26 assert_checkequal(cumsum(r, "r"), [1 1;1+s 1+s]./[s s;s^2 s]);
27 assert_checkequal(cumsum(r, "c"), [1 2;1 1+s^2]./[s s;s^2 s^2]);
28 assert_checkequal(cumsum(r, "m"), [1 1;1+s 1+s]./[s s;s^2 s]);
29 assert_checkequal(cumsum(r,"native"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]);
30 assert_checkequal(cumsum(r,"double"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]);
31 assert_checkequal(cumsum(r,"*", "native"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]);
32 assert_checkequal(cumsum(r, 1, "native"), [1 1;1+s 1+s]./[s s;s^2 s]);
33 assert_checkequal(cumsum(r, 2, "native"), [1 2;1 1+s^2]./[s s;s^2 s^2]);
34 assert_checkequal(cumsum(r, "r", "native"), [1 1;1+s 1+s]./[s s;s^2 s]);
35 assert_checkequal(cumsum(r, "c", "native"), [1 2;1 1+s^2]./[s s;s^2 s^2]);
36 assert_checkequal(cumsum(r, "m", "native"), [1 1;1+s 1+s]./[s s;s^2 s]);
37 assert_checkequal(cumsum(r,"*", "double"), [1 1+2*s;1+s 1+2*s+s^2]./[s s^2;s^2 s^2]);
38 assert_checkequal(cumsum(r, 1, "double"), [1 1;1+s 1+s]./[s s;s^2 s]);
39 assert_checkequal(cumsum(r, 2, "double"), [1 2;1 1+s^2]./[s s;s^2 s^2]);
40 assert_checkequal(cumsum(r, "r", "double"), [1 1;1+s 1+s]./[s s;s^2 s]);
41 assert_checkequal(cumsum(r, "c", "double"), [1 2;1 1+s^2]./[s s;s^2 s^2]);
42 assert_checkequal(cumsum(r, "m", "double"), [1 1;1+s 1+s]./[s s;s^2 s]);
43
44 // Check error
45 assert_checkfalse(execstr("cumsum(r, ""toto"")"   ,"errcatch") == 0);
46 refMsg = msprintf(_("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),..
47             "cumsum",2,"""*"",""r"",""c"",""m"",1:2");
48 assert_checkerror("cumsum(r, ""toto"")", refMsg);
49
50 assert_checkfalse(execstr("cumsum(r, ""*"", ""toto"")"   ,"errcatch") == 0);
51 refMsg = msprintf(_("%s: Wrong value for input argument #%d: ""%s"" or ""%s"" expected.\n"),"cumsum", 3, "native", "double");
52 assert_checkerror("cumsum(r, ""*"", ""toto"")", refMsg);
53
54 a = cumsum([1/%z %z/(1+2*%z)]);
55 assert_checkequal(a, [1/%z (1+2*%z+%z^2)/(%z+2*%z^2)]);
56
57 a = cumsum([1/%z %z/(1+2*%z)]');
58 assert_checkequal(a, [1/%z (1+2*%z+%z^2)/(%z+2*%z^2)]');