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