* Bug 16620 fixed: polyint() introduced
[scilab.git] / scilab / modules / polynomials / tests / unit_tests / polyint.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2020 - Samuel GOUGEON - Le Mans Universit√©
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 s = %s;
12 P = s^[0 1 ; 2 3];
13
14 // SINGLE INTEGRATION
15 // ==================
16 assert_checkequal(polyint(s), s^2/2);
17 Ref0 = s^[1 2 ; 3 4] ./ [1 2 ; 3 4];
18 assert_checkequal(polyint(P), Ref0);
19 Ref = [0, -s+0.5*s^2 ; -s+s^3/3,-s+0.25*s^4];
20 assert_checkequal(polyint(P-1), Ref);
21
22 // With consts
23 // -----------
24 assert_checkequal(polyint(P, 1), Ref0+1);
25 assert_checkequal(polyint(P, [1 2 ; 3 4]), Ref0+[1 2 ; 3 4]);
26 assert_checkequal(polyint(P, list([1 2 ; 3 4])), Ref0+[1 2 ; 3 4]);
27
28
29 // MULTIPLE INTEGRATIONS
30 // =====================
31 assert_checkequal(polyint(s,list(-1,1)), 1-s+s^3/6);
32
33 o = list(); o(5) = 0;   // undefined elements #1-4
34 assert_checkequal(polyint(1+0*s, o), s^5/factorial(5));
35
36 Ref = [-2+2*s+1.5*s^2 ; 1+2*s+0.5*s^2-s^3/6 ; 2*s-s^2+s^4/12];
37 assert_checkequal(polyint([3 ; 1-s ; s^2-2], list(2,[-2 1 0]')), Ref);
38 Ref = [-2 + 1.5*s^2 ; 1 + 0.5*s^2 - s^3/6 ; -s^2 + s^4/12];
39 assert_checkequal(polyint([3 ; 1-s ; s^2-2], list(,[-2 1 0]')), Ref);
40
41
42 // ERROR MESSAGES
43 // ==============
44 assert_checkerror("polyint(1,2,3)", _("Wrong number of input arguments."));
45 msg = msprintf(_("%s: Argument #%d: Polynomial expected.\n"), "polyint",1);
46 assert_checkerror("polyint(3)", msg);
47 msg = _("%s: Argument #%d: numbers or list of numbers expected.\n");
48 assert_checkerror("polyint(%s, %f)", msprintf(msg, "polyint",2));
49 msg = _("%s: Argument #%d(%d): Decimal or complex number expected.\n");
50 assert_checkerror("polyint(%s, list(3,%f))", msprintf(msg, "polyint",2,2));
51 msg = _("%s: Argument #%d(%d): Array of size [%s] expected.\n");
52 assert_checkerror("polyint(%s, [1 2])", msprintf(msg, "polyint",2,1,"1 1"));
53 assert_checkerror("polyint(%s, list([1 2]))", msprintf(msg, "polyint",2,1,"1 1"));
54 assert_checkerror("polyint(%s, list([1 2],4))", msprintf(msg, "polyint",2,1,"1 1"));
55 assert_checkerror("polyint(%s, list(4,,[1 2]))", msprintf(msg, "polyint",2,3,"1 1"));