Try to give more information in case of error 52/10752/4
Vincent COUVERT [Fri, 8 Mar 2013 15:18:56 +0000 (16:18 +0100)]
For example:
a = [1,2,3,4,5];
assert_checkequal(variance(a + a*%i),5)
=>
assert_checkequal: Assertion failed: expected = 5 while computed = 5 (mean diff = 8.882D-16)

Change-Id: I4439c6bc2e4efb5b70ad946ef0db7eba087cb98b

scilab/modules/development_tools/macros/assert/assert_checkequal.sci
scilab/modules/development_tools/tests/unit_tests/assert/checkequal.dia.ref
scilab/modules/development_tools/tests/unit_tests/assert/checkequal.tst

index b6e417a..9a76eda 100644 (file)
@@ -135,7 +135,12 @@ function [flag,errmsg] = assert_checkequal ( computed , expected )
             end
             cstr = "[" + string(val) + " ...]"
         end
-        errmsg = msprintf(gettext("%s: Assertion failed: expected = %s while computed = %s"),"assert_checkequal",estr,cstr)
+        ierr = execstr("mdiff = string(mean(computed - expected))", "errcatch");
+        if ( ierr == 0 ) then
+            errmsg = msprintf(gettext("%s: Assertion failed: expected = %s while computed = %s (mean diff = %s)"),"assert_checkequal",estr,cstr,mdiff)
+        else
+            errmsg = msprintf(gettext("%s: Assertion failed: expected = %s while computed = %s"),"assert_checkequal",estr,cstr)
+        end
         if ( lhs < 2 ) then
             // If no output variable is given, generate an error
             assert_generror ( errmsg )
index 3310113..aa32490 100644 (file)
@@ -56,7 +56,7 @@ instr = "assert_checkequal ( [1 2], [3 4] )";
 ierr=execstr(instr,"errcatch");
 MY_assert_equal ( ierr , 10000 );
 errmsg = lasterror();
-refmsg = msprintf( gettext( "%s: Assertion failed: expected = %s while computed = %s" ) , "assert_checkequal" , "[3 ...]" , "[1 ...]" );
+refmsg = msprintf( gettext( "%s: Assertion failed: expected = %s while computed = %s (mean diff = %s)" ) , "assert_checkequal" , "[3 ...]" , "[1 ...]", "-2");
 MY_assert_equal ( errmsg , refmsg );
 //
 [flag , errmsg] = assert_checkequal ( %T , %T );
index f925e8c..f5a3159 100644 (file)
@@ -62,7 +62,7 @@ instr = "assert_checkequal ( [1 2], [3 4] )";
 ierr=execstr(instr,"errcatch");
 MY_assert_equal ( ierr , 10000 );
 errmsg = lasterror();
-refmsg = msprintf( gettext( "%s: Assertion failed: expected = %s while computed = %s" ) , "assert_checkequal" , "[3 ...]" , "[1 ...]" );
+refmsg = msprintf( gettext( "%s: Assertion failed: expected = %s while computed = %s (mean diff = %s)" ) , "assert_checkequal" , "[3 ...]" , "[1 ...]", "-2");
 MY_assert_equal ( errmsg , refmsg );
 //
 [flag , errmsg] = assert_checkequal ( %T , %T );