Bug #10178: norm returned error message: 'division by zero' for some sparse matrices.
[scilab.git] / scilab / modules / linear_algebra / tests / nonreg_tests / bug_10178.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2012 - 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 10178 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=10178
14 //
15 // <-- Short Description -->
16 //    norm function falied for some sparse matrices.
17 // =============================================================================
18
19 A = [1 0 0 1 0;0 -1 -1 0 -1];
20 AS = sparse(A);
21
22 assert_checkalmostequal(norm(A), norm(AS));
23 assert_checkalmostequal(norm(A'), norm(AS'));
24 assert_checkequal(norm(A, 1), norm(AS, 1));
25 assert_checkequal(norm(A, %inf), norm(AS, %inf));
26 assert_checkequal(norm(A, 'fro'), norm(AS, 'fro'));
27
28 A = [1 1 1 1 1;-1 -1 -1 -1 -1];
29 AS = sparse(A);
30
31 assert_checkequal(norm(A), norm(AS));
32 assert_checkequal(norm(A)', norm(AS)');
33 assert_checkequal(norm(A, 1), norm(AS, 1));
34 assert_checkequal(norm(A, %inf), norm(AS, %inf));
35 assert_checkequal(norm(A, 'fro'), norm(AS, 'fro'));
36
37
38 A = [
39     0.    0.    0.    0.    0.  
40     0.    0.    0.    0.    0.  
41     0.    0.   -1.    0.    1.  
42     0.    0.    0.    0.    0.  
43     0.    0.    1.    0.   -1.  ];
44
45 AS = sparse(A);
46
47 assert_checkequal(norm(A), norm(AS));
48 assert_checkequal(norm(A, 1), norm(AS, 1));
49 assert_checkequal(norm(A, %inf), norm(AS, %inf));
50 assert_checkequal(norm(A, 'fro'), norm(AS, 'fro'));