fix assert_checkequal
[scilab.git] / scilab / modules / development_tools / tests / unit_tests / assert / checkequal.dia.ref
1 // Copyright (C) 2008 - INRIA - Michael Baudin
2 // Copyright (C) 2010 - DIGITEO - Michael Baudin
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
9 // <-- CLI SHELL MODE -->
10 // <-- ENGLISH IMPOSED -->
11 function flag = MY_assert_equal ( computed , expected )
12     if ( and ( computed==expected ) ) then
13         flag = 1;
14     else
15         flag = 0;
16     end
17     if flag <> 1 then bugmes();quit;end
18 endfunction
19 function checkassert ( flag , errmsg , ctype )
20     if ( ctype == "success" ) then
21         MY_assert_equal ( (flag==%t) & (errmsg==""), %t )
22     else
23         MY_assert_equal ( (flag==%f) & (errmsg<>""), %t )
24     end
25 endfunction
26 format("v",10);
27 // Check error message when number of arguments is false
28 instr = "assert_checkequal ( )";
29 ierr=execstr(instr,"errcatch");
30 MY_assert_equal ( ierr , 10000 );
31 //
32 instr = "assert_checkequal ( 1 )";
33 ierr=execstr(instr,"errcatch");
34 MY_assert_equal ( ierr , 10000 );
35 //
36 instr = "[o1,o2,o3]=assert_checkequal ( 1 , 1 )";
37 ierr=execstr(instr,"errcatch");
38 MY_assert_equal ( ierr , 59 );
39 //////////////////////////////////////////
40 // Check error message when type of arguments is false
41 instr = "assert_checkequal ( ""a"" , 2 )";
42 ierr=execstr(instr,"errcatch");
43 MY_assert_equal ( ierr , 10000 );
44 //
45 instr = "assert_checkequal ( 1 , ""b"" )";
46 ierr=execstr(instr,"errcatch");
47 MY_assert_equal ( ierr , 10000 );
48 //////////////////////////////////////////
49 // Check error message when size of arguments are not equal
50 instr = "assert_checkequal ( 1 , [2 3] )";
51 ierr=execstr(instr,"errcatch");
52 MY_assert_equal ( ierr , 10000 );
53 //
54 // Check that the error message is correctly handled.
55 instr = "assert_checkequal ( [1 2], [3 4] )";
56 ierr=execstr(instr,"errcatch");
57 MY_assert_equal ( ierr , 10000 );
58 errmsg = lasterror();
59 refmsg = msprintf( gettext( "%s: Assertion failed: expected = %s while computed = %s (mean diff = %s)" ) , "assert_checkequal" , "[3 ...]" , "[1 ...]", "-2");
60 MY_assert_equal ( errmsg , refmsg );
61 //
62 [flag , errmsg] = assert_checkequal ( %T , %T );
63 checkassert ( flag , errmsg , "success" );
64 //
65 [flag , errmsg] = assert_checkequal ( %F , %T );
66 checkassert ( flag , errmsg , "failure" );
67 //
68 [flag , errmsg] = assert_checkequal ( %nan , %nan );
69 checkassert ( flag , errmsg , "success" );
70 //
71 [flag , errmsg] = assert_checkequal ( list() , list() );
72 checkassert ( flag , errmsg , "success" );
73 //
74 [flag , errmsg] = assert_checkequal ( [%T %F], [%T %F] );
75 checkassert ( flag , errmsg , "success" );
76 //
77 // Test all IEEE values
78 [flag , errmsg] = assert_checkequal ( [1 %inf -%inf %nan] , [1 %inf -%inf %nan] );
79 checkassert ( flag , errmsg , "success" );
80 //
81 [flag , errmsg] = assert_checkequal ( [] , [] );
82 checkassert ( flag , errmsg , "success" );
83 ////////////////////////////////////////////////////////
84 // Check complex entries.
85 [flag , errmsg] = assert_checkequal(complex(%nan,%nan),complex(%nan,0));
86 checkassert ( flag , errmsg , "failure" );
87 //
88 [flag , errmsg] = assert_checkequal(complex(%nan,%inf),complex(%nan,0));
89 checkassert ( flag , errmsg , "failure" );
90 //
91 [flag , errmsg] = assert_checkequal(complex(%nan,%nan),complex(0,%nan));
92 checkassert ( flag , errmsg , "failure" );
93 //
94 [flag , errmsg] = assert_checkequal(complex(%nan,%inf),complex(0,%inf));
95 checkassert ( flag , errmsg , "failure" );
96 //
97 [flag , errmsg] = assert_checkequal(complex(0,%inf),complex(0,%inf));
98 checkassert ( flag , errmsg , "success" );
99 //
100 [flag , errmsg] = assert_checkequal(complex(%nan,%nan),complex(%nan,%nan));
101 checkassert ( flag , errmsg , "success" );
102 //
103 [flag , errmsg] = assert_checkequal(complex(%inf,%nan),complex(%inf,%nan));
104 checkassert ( flag , errmsg , "success" );
105 //
106 ////////////////////////////////////////////////////////
107 // Check various types
108 //
109 //  Mlist
110 s=mlist(["V","name","value"],["a","b";"c" "d"],[1 2; 3 4]);
111 t=s;
112 assert_checkequal(s, t);
113 //
114 //  Tlist
115 s=tlist(["V","name","value"],["a","b";"c" "d"],[1 2; 3 4]);
116 t=s;
117 assert_checkequal(s, t);
118 //
119 // Polynomial
120 s=poly(0,"s");
121 t=s;
122 assert_checkequal(s, t);
123 //
124 // Sparse
125 s=spzeros(3,5);
126 t=s;
127 assert_checkequal(s, t);
128 s(1)=12;
129 instr="assert_checkequal(s, t)";
130 ierr=execstr(instr,"errcatch");
131 MY_assert_equal(ierr, 10000);
132 //
133 // Boolean
134 s=(ones(3,5)==ones(3,5));
135 t=s;
136 assert_checkequal(s, t);
137 //
138 // Sparse Boolean
139 s=(spzeros(3,5)==spzeros(3,5));
140 t=s;
141 assert_checkequal(s, t);
142 s(1)=%f;
143 instr="assert_checkequal(s, t)";
144 ierr=execstr(instr,"errcatch");
145 MY_assert_equal(ierr, 10000);
146 //
147 // Integer  8
148 s=int8(3);
149 t=s;
150 assert_checkequal(s, t);
151 //
152 // String
153 s="foo";
154 t=s;
155 assert_checkequal(s, t);
156 //
157 // List
158 s=list("foo",2);
159 t=s;
160 assert_checkequal(s, t);
161 //
162 // Hypermatrix
163 // - Double
164 s = rand(2,2,2);
165 t = s;
166 assert_checkequal(s,t);
167 // - int8
168 s = int8(rand(2,2,2));
169 t = s;
170 assert_checkequal(s,t);
171 // - wrong type
172 s = rand(2,2,2);
173 t = int8(s);
174 instr="assert_checkequal(s, t)";
175 ierr=execstr(instr,"errcatch");
176 MY_assert_equal(ierr, 10000);