1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
// =============================================================================
// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
//
// This file is distributed under the same license as the Scilab package.
// =============================================================================
// <-- CLI SHELL MODE -->
// unit tests for detr function
// =============================================================================
assert_checkfalse(execstr("detr()" ,"errcatch") == 0);
refMsg = msprintf(_("%s: Wrong number of input argument: %d expected.\n"), "detr", 1);
assert_checkerror("detr()", refMsg);
assert_checkfalse(execstr("detr(""r"")" ,"errcatch") == 0);
refMsg = msprintf(_("%s: Wrong type for input argument #%d: A floating point number or polynomial or rational fraction array expected.\n"), "detr", 1);
assert_checkerror("detr(""r"")", refMsg);
assert_checkfalse(execstr("detr([1;2])" ,"errcatch") == 0);
refMsg = msprintf(_("%s: Wrong size for input argument #%d: A square matrix expected.\n"), "detr", 1);
assert_checkerror("detr([1;2])", refMsg);
A = [1 1;1 2];
d = detr(A);
assert_checkequal(d, 1);
assert_checkequal(d, det(A));
A = %i*A;
d = detr(A);
assert_checkequal(d, complex(-1, 0));
assert_checkequal(d, det(A));
A = [1 3 5;2 3 4;8 4 9];
d = detr(A);
assert_checkequal(d, -27);
assert_checkequal(d, det(A));
A= A-%i;
d = detr(A);
assert_checkequal(d, complex(-27,9));
assert_checkalmostequal(d, det(A), [], %eps);
A = [1+%s 1; 1 2+%s];
d = detr(A);
assert_checkequal(d, 1+3*%s+%s^2);
assert_checkequal(d, det(A));
A = [1*%s 3 5*%s^2;2 3*%s 4; 8*%s^3 4*%s^2 9*%s];
d = detr(A);
assert_checkequal(d, -54*%s+107*%s^3+40*%s^4-120*%s^6);
assert_checkalmostequal(coeff(d), coeff(det(A)), [], %eps);
A = [1/%s 1; 1 2/%s];
d = detr(A);
assert_checkequal(d, (2-%s^2)/%s^2);
assert_checkequal(d, det(A));
A = [1/%s 3 5/%s^2;2 3/%s 4; 8/%s^3 4/%s^2 9/%s];
d = detr(A);
assert_checkequal(d, (-120 +40*%s^2+107*%s^3-54*%s^5)/%s^6);
d2 = det(A);
assert_checkalmostequal(coeff(d.num), coeff(d2.num), [], %eps);
assert_checkalmostequal(coeff(d.den), coeff(d2.den), [], %eps);
|