complex() extended to sparses
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / complex.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2011 - DIGITEO - Michael Baudin
4 // Copyright (C) 2020 - Samuel GOUGEON
5 //
6 //  This file is distributed under the same license as the Scilab package.
7 // =============================================================================
8
9 // <-- CLI SHELL MODE -->
10 // <-- NO CHECK REF -->
11
12 c = complex(1);
13 assert_checkequal([real(c);imag(c)],[1;0]);
14 //
15 c = complex(1,2);
16 assert_checkequal([real(c);imag(c)],[1;2]);
17 //
18 c = complex([1 2]);
19 assert_checkequal([real(c);imag(c)],[1 2;0 0]);
20 //
21 c = complex([1 2 3], 4);
22 assert_checkequal([real(c);imag(c)],[1 2 3;4 4 4]);
23 //
24 c = complex(1, [2 3 4]);
25 assert_checkequal([real(c);imag(c)],[1 1 1;2 3 4]);
26 //
27 c = complex([1 2],[3 4]);
28 assert_checkequal([real(c);imag(c)],[1 2;3 4]);
29 //
30 L = list(1, [1 2], sparse(1), sparse([1 2]), %t, [%f %t], sparse(%t), sparse([%f %t]));
31 for Re = L
32     assert_checkequal(issparse(complex(Re)), issparse(Re));
33     for Im = L
34         if ~issparse(Re) & ~issparse(Im)
35             continue
36         end
37         c = complex(Re, Im);
38         ref = and(size(Re)==size(Im)) && issparse(Re) && issparse(Im)
39         assert_checkequal(issparse(c), ref);
40     end
41 end
42
43 // Special values
44 // --------------
45 g = [-%inf 0 1 %inf %nan];
46 // Generating all possible (rel, imag) combinations:
47 r = g .*. ones(1,5);
48 i = ones(1,5) .*. g;
49
50 c = complex(r, i);
51 assert_checkequal(real(c), r);
52 assert_checkequal(imag(c), i);
53
54 r = sparse(r);
55 i = sparse(i);
56 c = complex(r, i);
57 assert_checkequal(real(c), r);
58 assert_checkequal(imag(c), i);