1 // Copyright (C) 2008 - INRIA - Michael Baudin
2 // Copyright (C) 2010 - DIGITEO - Michael Baudin
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 // <-- JVM NOT MANDATORY -->
10 // <-- ENGLISH IMPOSED -->
11 function flag = MY_assert_equal ( computed , expected )
12 if computed==expected then
17 if flag <> 1 then bugmes();quit;end
21 dmax = -log10(2^(-53));
23 computed = assert_computedigits ( 1 , 1 );
24 MY_assert_equal ( computed , dmax );
26 computed = assert_computedigits ( 0 , 0 );
27 MY_assert_equal ( computed , dmax );
29 computed = assert_computedigits ( 1 , 0 );
30 MY_assert_equal ( computed , 0 );
32 computed = assert_computedigits ( 0 , 1 );
33 MY_assert_equal ( computed , 0 );
35 computed = assert_computedigits ( 3.1415926 , %pi );
36 MY_assert_equal ( computed , 7.76806779280040160 );
38 computed = assert_computedigits ( 3.1415926 , %pi , 2 );
39 MY_assert_equal ( computed , 25.80496264389331884 );
41 computed = assert_computedigits ( [0 0 1 1] , [0 1 0 1] );
42 MY_assert_equal ( computed , [dmax 0 0 dmax] );
44 computed = assert_computedigits(ones(3,2),ones(3,2));
45 MY_assert_equal ( computed , dmax * ones(3,2) );
47 computed = assert_computedigits([%nan %nan %nan %nan],[%nan %inf -%inf 0]);
48 MY_assert_equal ( computed , [dmax 0 0 0] );
50 computed = assert_computedigits([%inf %inf %inf %inf],[%nan %inf -%inf 0]);
51 MY_assert_equal ( computed , [0 dmax 0 0] );
53 computed = assert_computedigits([-%inf -%inf -%inf -%inf],[%nan %inf -%inf 0]);
54 MY_assert_equal ( computed , [0 0 dmax 0] );
56 computed = assert_computedigits([0 0 0 0],[%nan %inf -%inf 0]);
57 MY_assert_equal ( computed , [0 0 0 dmax] );
59 computed = assert_computedigits(1.224646799D-16,8.462643383D-18);
60 MY_assert_equal ( computed , 0 );
62 computed = assert_computedigits ( 1.2345 + %i*6.7891 , 1.23456789 + %i*6.789123456 );
63 MY_assert_equal ( computed , 4.259709168495138698 );
65 // The sign bit of the number of digits may be wrong because
66 // ieee(2); z=max(-0,0); 1/z is -%inf
69 computed = assert_computedigits ( 1.e-305 , 0 );
70 MY_assert_equal ( 1/computed , %inf );
72 computed = assert_computedigits ( 0 , 1.e-305 );
73 MY_assert_equal ( 1/computed , %inf );