* Bug #14649 fixed: isnan(complex(%inf, %inf)) was %F while phase is NaN
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / isnan.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2016 - Samuel GOUGEON
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 //
10 // unit tests for isnan() function
11 // ===============================
12
13 assert_checkequal(isnan([]), []);
14
15 // With decimal real numbers
16 // -------------------------
17 assert_checktrue(isnan(%nan));
18
19 M = [%pi %inf -1 %nan 3 -%nan -%inf];
20 R = [%f %f %f %t %f %t %f];
21 assert_checkequal(isnan(M), R);
22 assert_checkequal(isnan(M'),R');
23 M = sparse(M);
24 R = sparse(R);
25 assert_checkequal(isnan(M), R);
26 assert_checkequal(isnan(M'),R');
27
28 M = [%pi %inf -1   %nan
29       3 -%nan  0  -%inf];
30 R = [%f %f %f %t ; %f %t %f %f];
31 assert_checkequal(isnan(M),R);
32 M = sparse(M);
33 R = sparse(R);
34 assert_checkequal(isnan(M), R);
35
36 clear M R
37 M(:,:,1) = [%pi %inf ; -1  %nan];
38 M(:,:,2) = [ 3 -%nan ;  0  -%inf];
39 R(:,:,1) = [%f %f ; %f %t ];
40 R(:,:,2) = [%f %t ; %f %f ];
41 assert_checkequal(isnan(M),R);
42 // no sparse hypermatrix
43
44 // With complex numbers
45 // --------------------
46 G = [ -%inf -10 0 %nan 10 %inf];
47 [R,I] = meshgrid(G,G);
48 C = complex(R,I);
49 res = [
50    1.   0.   0.   1.   0.   1.
51    0.   0.   0.   1.   0.   0.
52    0.   0.   0.   1.   0.   0.
53    1.   1.   1.   1.   1.   1.
54    0.   0.   0.   1.   0.   0.
55    1.   0.   0.   1.   0.   1.
56    ]==1;
57 assert_checkequal(isnan(C), res);
58
59 C = sparse(C);
60 res = sparse(res);
61 assert_checkequal(isnan(C), res);
62