fix assert_checkequal 24/14724/11
Anais AUBERT [Mon, 23 Jun 2014 13:53:28 +0000 (15:53 +0200)]
s=spzeros(3,5);
s1=s;s1(1)=1;
b=s==1;
b1=b;b1(1)=%t;

assert_checkequal(s, s);
assert_checkequal(s, s1);// fail to check error message
assert_checkequal(b, b);
assert_checkequal(b, b1);// fail to check error message

test_run("development_tools","checkequal",["no_check_error_output" ]);

Change-Id: I4c75880105a1ad42c5c0e8c75f38b1a01f39d7a7

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 61a139f..444980c 100644 (file)
@@ -48,14 +48,13 @@ function [flag,errmsg] = assert_checkequal ( computed , expected )
         errmsg = sprintf ( gettext ( "%s: Wrong number of input arguments: %d expected.\n") , "assert_checkequal" , 2 )
         error(errmsg)
     end
-    //
+
     // Check types of variables
     if ( typeof(computed) <> typeof(expected) ) then
         errmsg = sprintf ( gettext ( "%s: Incompatible input arguments #%d and #%d: Same types expected.\n" ) , "assert_checkequal" , 1 , 2 )
         error(errmsg)
-    end
+   end
 
-    //
     // Check hypermat type
     if (typeof(computed) == "hypermat") then
         // Check on first element type
@@ -113,19 +112,21 @@ function [flag,errmsg] = assert_checkequal ( computed , expected )
             flag = %f
         end
     end
+
     if ( flag == %t ) then
+
         errmsg = ""
     else
         // Change the message if the matrix contains more than one value
         if ( size(expected,"*") == 1 ) then
-            if ( typeof(expected) == "sparse") then
+            if ( or(typeof(expected) == ["sparse", "boolean sparse"])) then
                 val = full(expected)
             else
                 val = expected
             end
             estr = string(val)
         else
-            if ( typeof(expected) == "sparse") then
+            if ( or(typeof(expected) == ["sparse", "boolean sparse"])) then
                 val = full(expected(1))
             else
                 val = expected(1)
@@ -133,14 +134,14 @@ function [flag,errmsg] = assert_checkequal ( computed , expected )
             estr = "[" + string(val) + " ...]"
         end
         if ( size(computed,"*") == 1 ) then
-            if ( typeof(computed) == "sparse") then
+            if ( or(typeof(computed) == ["sparse", "boolean sparse"])) then
                 val = full(computed)
             else
                 val = computed
             end
             cstr = string(val)
         else
-            if ( typeof(computed) == "sparse") then
+            if ( or(typeof(computed) == ["sparse", "boolean sparse"])) then
                 val = full(computed(1))
             else
                 val = computed(1)
index a38e5de..f8d1714 100644 (file)
@@ -9,19 +9,19 @@
 // <-- CLI SHELL MODE -->
 // <-- ENGLISH IMPOSED -->
 function flag = MY_assert_equal ( computed , expected )
-  if ( and ( computed==expected ) ) then
-    flag = 1;
-  else
-    flag = 0;
-  end
-  if flag <> 1 then bugmes();quit;end
+    if ( and ( computed==expected ) ) then
+        flag = 1;
+    else
+        flag = 0;
+    end
+    if flag <> 1 then bugmes();quit;end
 endfunction
 function checkassert ( flag , errmsg , ctype )
-  if ( ctype == "success" ) then
-    MY_assert_equal ( (flag==%t) & (errmsg==""), %t )
-  else
-    MY_assert_equal ( (flag==%f) & (errmsg<>""), %t )
-  end
+    if ( ctype == "success" ) then
+        MY_assert_equal ( (flag==%t) & (errmsg==""), %t )
+    else
+        MY_assert_equal ( (flag==%f) & (errmsg<>""), %t )
+    end
 endfunction
 format("v",10);
 // Check error message when number of arguments is false
@@ -107,12 +107,12 @@ checkassert ( flag , errmsg , "success" );
 // Check various types
 //
 //  Mlist
-s=mlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
+s=mlist(["V","name","value"],["a","b";"c" "d"],[1 2; 3 4]);
 t=s;
 assert_checkequal(s, t);
 //
 //  Tlist
-s=tlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
+s=tlist(["V","name","value"],["a","b";"c" "d"],[1 2; 3 4]);
 t=s;
 assert_checkequal(s, t);
 //
@@ -125,6 +125,10 @@ assert_checkequal(s, t);
 s=spzeros(3,5);
 t=s;
 assert_checkequal(s, t);
+s(1)=12;
+instr="assert_checkequal(s, t)";
+ierr=execstr(instr,"errcatch");
+MY_assert_equal(ierr, 10000);
 //
 // Boolean
 s=(ones(3,5)==ones(3,5));
@@ -135,6 +139,10 @@ assert_checkequal(s, t);
 s=(spzeros(3,5)==spzeros(3,5));
 t=s;
 assert_checkequal(s, t);
+s(1)=%f;
+instr="assert_checkequal(s, t)";
+ierr=execstr(instr,"errcatch");
+MY_assert_equal(ierr, 10000);
 //
 // Integer  8
 s=int8(3);
index a701b96..3ffaae8 100644 (file)
 // <-- ENGLISH IMPOSED -->
 
 function flag = MY_assert_equal ( computed , expected )
-  if ( and ( computed==expected ) ) then
-    flag = 1;
-  else
-    flag = 0;
-  end
-  if flag <> 1 then pause,end
+    if ( and ( computed==expected ) ) then
+        flag = 1;
+    else
+        flag = 0;
+    end
+    if flag <> 1 then pause,end
 endfunction
 
 function checkassert ( flag , errmsg , ctype )
-  if ( ctype == "success" ) then
-    MY_assert_equal ( (flag==%t) & (errmsg==""), %t )
-  else
-    MY_assert_equal ( (flag==%f) & (errmsg<>""), %t )
-  end
+    if ( ctype == "success" ) then
+        MY_assert_equal ( (flag==%t) & (errmsg==""), %t )
+    else
+        MY_assert_equal ( (flag==%f) & (errmsg<>""), %t )
+    end
 endfunction
 
 format("v",10);
@@ -113,12 +113,12 @@ checkassert ( flag , errmsg , "success" );
 // Check various types
 //
 //  Mlist
-s=mlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
+s=mlist(["V","name","value"],["a","b";"c" "d"],[1 2; 3 4]);
 t=s;
 assert_checkequal(s, t);
 //
 //  Tlist
-s=tlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]);
+s=tlist(["V","name","value"],["a","b";"c" "d"],[1 2; 3 4]);
 t=s;
 assert_checkequal(s, t);
 //
@@ -131,6 +131,11 @@ assert_checkequal(s, t);
 s=spzeros(3,5);
 t=s;
 assert_checkequal(s, t);
+s(1)=12;
+instr="assert_checkequal(s, t)";
+ierr=execstr(instr,"errcatch");
+MY_assert_equal(ierr, 10000);
+
 //
 // Boolean
 s=(ones(3,5)==ones(3,5));
@@ -141,6 +146,11 @@ assert_checkequal(s, t);
 s=(spzeros(3,5)==spzeros(3,5));
 t=s;
 assert_checkequal(s, t);
+s(1)=%f;
+instr="assert_checkequal(s, t)";
+ierr=execstr(instr,"errcatch");
+MY_assert_equal(ierr, 10000);
+
 //
 // Integer  8
 s=int8(3);