* Bug 15842 fixed: unique() + with 2D sparse
[scilab.git] / scilab / modules / elementary_functions / tests / unit_tests / complex.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2011 - DIGITEO - Michael Baudin
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- CLI SHELL MODE -->
8 function [flag,errmsg] = assert_equal ( computed , expected )
9     //  Check that computed and expected are equal.
10     function flag = comparedoubles ( computed , expected )
11         [cnonan , cnumb] = mythrownan(computed)
12         [enonan , enumb] = mythrownan(expected)
13         if ( and(enonan == cnonan) & and(enumb == cnumb) ) then
14             flag = %t
15         else
16             flag = %f
17         end
18     endfunction
19     function [nonan,numb] = mythrownan(x)
20         [lhs,rhs]=argn(0)
21         if ( rhs<>1 ) then 
22             error(msprintf(gettext("%s: Wrong number of input argument: %d expected.\n"),"thrownan",1))
23         end
24         numb=find(bool2s(~isnan(x)))
25         nonan=x(~isnan(x))
26     endfunction
27     [lhs,rhs]=argn()
28     if ( rhs <> 2 ) then
29         errmsg = sprintf ( gettext ( "%s: Wrong number of input arguments: %d expected.\n") , "assert_checkequal" , 2 )
30         error(errmsg)
31     end
32     //
33     // Check types of variables
34     if ( typeof(computed) <> typeof(expected) ) then
35         errmsg = sprintf ( gettext ( "%s: Incompatible input arguments #%d and #%d: Same types expected.\n" ) , "assert_checkequal" , 1 , 2 )
36         error(errmsg)
37     end
38     //
39     // Check sizes of variables
40     ncom = size(computed)
41     nexp = size(expected)
42     if ( or(ncom <> nexp) ) then
43         errmsg = sprintf ( gettext ( "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n") , "assert_checkequal" , 1 , 2 )
44         error(errmsg)
45     end  
46     //
47     if ( type(computed) == 1 & type(expected) == 1 ) then
48         // These are two matrices of doubles
49         cisreal = isreal(computed)
50         eisreal = isreal(expected)
51         if ( cisreal & ~eisreal ) then
52             errmsg = sprintf ( gettext ( "%s: Computed is real, but expected is complex.") , "assert_checkequal" )
53             error(errmsg)
54         end
55         if ( ~cisreal & eisreal ) then
56             errmsg = sprintf ( gettext ( "%s: Computed is complex, but expected is real.") , "assert_checkequal" )
57             error(errmsg)
58         end
59         if ( cisreal & eisreal ) then
60             flag = comparedoubles ( computed , expected )
61         else
62             flagreal = comparedoubles ( real(computed) , real(expected) )
63             if ( flagreal ) then
64                 flagimag = comparedoubles ( imag(computed) , imag(expected) )
65                 flag = flagimag
66             else
67                 flag = %f
68             end
69         end
70     else
71         if ( and ( computed == expected ) ) then
72             flag = %t
73         else
74             flag = %f
75         end
76     end
77     if ( flag == %t ) then
78         errmsg = ""
79     else
80         // Change the message if the matrix contains more than one value
81         if ( size(expected,"*") == 1 ) then
82             estr = string(expected)
83         else
84             estr = "[" + string(expected(1)) + " ...]"
85         end
86         if ( size(computed,"*") == 1 ) then
87             cstr = string(computed)
88         else
89             cstr = "[" + string(computed(1)) + " ...]"
90         end
91         errmsg = msprintf(gettext("%s: Assertion failed: expected = %s while computed = %s"),"assert_checkequal",estr,cstr)
92         if ( lhs < 2 ) then
93             // If no output variable is given, generate an error
94             error ( errmsg )
95         end
96     end
97 endfunction
98 c = complex(1,2);
99 assert_equal([real(c);imag(c)],[1;2]);
100 //
101 c = complex([1 2],[3 4]);
102 assert_equal([real(c);imag(c)],[1 2;3 4]);
103 //
104 c = complex(%inf,%inf);
105 assert_equal([real(c);imag(c)],[%inf;%inf]);
106 //
107 c = complex(%inf,%nan);
108 assert_equal([real(c);imag(c)],[%inf;%nan]);
109 //
110 c = complex(%nan,%nan);
111 assert_equal([real(c);imag(c)],[%nan;%nan]);
112 //
113 c = complex(%nan,%inf);
114 assert_equal([real(c);imag(c)],[%nan;%inf]);
115 //
116 c = complex(0,%nan);
117 assert_equal([real(c);imag(c)],[0;%nan]);
118 //
119 c = complex(0,%inf);
120 assert_equal([real(c);imag(c)],[0;%inf]);
121 //
122 c = complex(1);
123 assert_equal([real(c);imag(c)],[1;0]);
124 //
125 c = complex([1 2]);
126 assert_equal([real(c);imag(c)],[1 2;0 0]);
127 //
128 c = complex([1 2 3], 4);
129 assert_equal([real(c);imag(c)],[1 2 3;4 4 4]);
130 //
131 c = complex(1, [2 3 4]);
132 assert_equal([real(c);imag(c)],[1 1 1;2 3 4]);