Development_tools: assert_cond2reqdigits() supports "complex real" (0 as imaginary... 92/18692/5
Simon Marchetto [Fri, 27 Jan 2017 11:02:35 +0000 (12:02 +0100)]
Change-Id: I2aa6c62ddb7287f7f340442d8530c163e557c0e0

scilab/modules/development_tools/macros/assert/assert_cond2reqdigits.sci
scilab/modules/development_tools/tests/unit_tests/assert/cond2reqdigits.dia.ref
scilab/modules/development_tools/tests/unit_tests/assert/cond2reqdigits.tst

index 31ea049..245a15d 100644 (file)
@@ -147,6 +147,13 @@ function d = assert_cond2reqdigits ( varargin )
     // Let the user and assert_expandvar manage this.
     //
     // Check content of variables
+
+    if find(abs(imag(condition)) > 0) <> []
+        errmsg = sprintf ( gettext ( "%s: Wrong value for input argument #%d: Must be real.\n") , "assert_cond2reqdigits" , 1 )
+        error(errmsg)
+    end
+    condition = real(condition);
+
     if ( or ( condition < 0 ) ) then
         errmsg = sprintf ( gettext ( "%s: Wrong value for input argument #%d: Must be > %d.\n") , "assert_cond2reqdigits" , 1 , 0 )
         error(errmsg)
index f47dd41..14e4661 100644 (file)
 // <-- CLI SHELL MODE -->
 // <-- ENGLISH IMPOSED -->
 funcprot(0);
-function flag = MY_assert_equal ( computed , expected )
-  if computed==expected then
-    flag = 1;
-  else
-    flag = 0;
-  end
-  if flag <> 1 then bugmes();quit;end
-endfunction
-//
 condition = [
  0
  1
@@ -33,46 +24,46 @@ condition = [
  1.e17
  1.e18
 ];
-computed = assert_cond2reqdigits ( condition );
+computed = assert_cond2reqdigits(condition);
 expected = [
-    15.954589770191001107946  
-    15.954589770191001107946  
-    14.954589770191001107946  
-    13.954589770191001107946  
-    12.954589770191001107946  
-    2.954589770191002884303   
-    1.9545897701910011079462  
-    0.954589770191002884303   
-    0.                        
-    0.                        
-    0.                        
+    15.954589770191001107946
+    15.954589770191001107946
+    14.954589770191001107946
+    13.954589770191001107946
+    12.954589770191001107946
+    2.954589770191002884303
+    1.9545897701910011079462
+    0.954589770191002884303
+    0.
+    0.
+    0.
 ];
-MY_assert_equal ( computed , expected );
+assert_checkequal(computed, expected);
 //
 // With offset
-computed = assert_cond2reqdigits ( 1.e2 , [5 4 3 2 1 0 -1 -2 -3 -4 -5]' );
+computed = assert_cond2reqdigits(1.e2, [5 4 3 2 1 0 -1 -2 -3 -4 -5]' );
 expected = [
-    15.954589770191001107946  
-    15.954589770191001107946  
-    15.954589770191001107946  
-    15.954589770191001107946  
-    14.954589770191001107946  
-    13.954589770191001107946  
-    12.954589770191001107946  
-    11.954589770191001107946  
-    10.954589770191001107946  
-    9.9545897701910011079462  
-    8.9545897701910011079462  
+    15.954589770191001107946
+    15.954589770191001107946
+    15.954589770191001107946
+    15.954589770191001107946
+    14.954589770191001107946
+    13.954589770191001107946
+    12.954589770191001107946
+    11.954589770191001107946
+    10.954589770191001107946
+    9.9545897701910011079462
+    8.9545897701910011079462
 ];
-MY_assert_equal ( computed , expected );
+assert_checkequal(computed, expected);
 //
-computed = assert_cond2reqdigits ( 1.e14 , [0 -1 -2 -3] );
+computed = assert_cond2reqdigits(1.e14, [0 -1 -2 -3]);
 expected = [1.9545897701910011079462    0.9545897701910011079462    0.    0.];
-MY_assert_equal ( computed , expected );
+assert_checkequal(computed, expected);
 //
-computed = assert_cond2reqdigits ( 1.e2 , [0 1 2 3] ) ;
+computed = assert_cond2reqdigits(1.e2, [0 1 2 3]) ;
 expected = [13.954589770191001107946    14.954589770191001107946    15.954589770191001107946    15.954589770191001107946];
-MY_assert_equal ( computed , expected );
+assert_checkequal(computed, expected);
 //
 // Use base-2
 condition = [
@@ -88,36 +79,39 @@ condition = [
  1.e17
  1.e18
 ];
-computed = assert_cond2reqdigits ( condition , [] , 2 );
+computed = assert_cond2reqdigits(condition, [], 2);
 expected = [
-    53.                       
-    53.                       
-    49.678071905112638262381  
-    46.3561438102252765248    
-    43.034215715337914787142  
-    9.814934766464290305521   
-    6.4930066715769214624743  
-    3.1710785766895668302823  
-    0.                        
-    0.                        
-    0.                        
+    53.
+    53.
+    49.678071905112638262381
+    46.3561438102252765248
+    43.034215715337914787142
+    9.814934766464290305521
+    6.4930066715769214624743
+    3.1710785766895668302823
+    0.
+    0.
+    0.
 ];
-MY_assert_equal ( computed , expected );
+assert_checkequal(computed, expected);
 //
 // With offset
-computed = assert_cond2reqdigits ( 1.e2 , [5 4 3 2 1 0 -1 -2 -3 -4 -5]' , 2 );
+computed = assert_cond2reqdigits(1.e2, [5 4 3 2 1 0 -1 -2 -3 -4 -5]', 2);
 expected = [
-    51.3561438102252765248  
-    50.3561438102252765248  
-    49.3561438102252765248  
-    48.3561438102252765248  
-    47.3561438102252765248  
-    46.3561438102252765248  
-    45.3561438102252765248  
-    44.3561438102252765248  
-    43.3561438102252765248  
-    42.3561438102252765248  
-    41.3561438102252765248  
+    51.3561438102252765248
+    50.3561438102252765248
+    49.3561438102252765248
+    48.3561438102252765248
+    47.3561438102252765248
+    46.3561438102252765248
+    45.3561438102252765248
+    44.3561438102252765248
+    43.3561438102252765248
+    42.3561438102252765248
+    41.3561438102252765248
 ];
-MY_assert_equal ( computed , expected );
+// check complex not supported, only "complex real" (zero as imaginary part)
+assert_checkequal(computed, expected);
+assert_checkerror("assert_cond2reqdigits(%i)", "assert_cond2reqdigits: Wrong value for input argument #1: Must be real.");
+assert_checkequal(assert_cond2reqdigits(1 + 0*%i, [], 2), 53);
 funcprot(1);
index addda6a..528f50c 100644 (file)
 
 funcprot(0);
 
-function flag = MY_assert_equal ( computed , expected )
-  if computed==expected then
-    flag = 1;
-  else
-    flag = 0;
-  end
-  if flag <> 1 then pause,end
-endfunction
-
-//
 condition = [
  0
  1
@@ -37,46 +27,46 @@ condition = [
  1.e17
  1.e18
 ];
-computed = assert_cond2reqdigits ( condition );
+computed = assert_cond2reqdigits(condition);
 expected = [
-    15.954589770191001107946  
-    15.954589770191001107946  
-    14.954589770191001107946  
-    13.954589770191001107946  
-    12.954589770191001107946  
-    2.954589770191002884303   
-    1.9545897701910011079462  
-    0.954589770191002884303   
-    0.                        
-    0.                        
-    0.                        
+    15.954589770191001107946
+    15.954589770191001107946
+    14.954589770191001107946
+    13.954589770191001107946
+    12.954589770191001107946
+    2.954589770191002884303
+    1.9545897701910011079462
+    0.954589770191002884303
+    0.
+    0.
+    0.
 ];
-MY_assert_equal ( computed , expected );
+assert_checkequal(computed, expected);
 //
 // With offset
-computed = assert_cond2reqdigits ( 1.e2 , [5 4 3 2 1 0 -1 -2 -3 -4 -5]' );
+computed = assert_cond2reqdigits(1.e2, [5 4 3 2 1 0 -1 -2 -3 -4 -5]' );
 expected = [
-    15.954589770191001107946  
-    15.954589770191001107946  
-    15.954589770191001107946  
-    15.954589770191001107946  
-    14.954589770191001107946  
-    13.954589770191001107946  
-    12.954589770191001107946  
-    11.954589770191001107946  
-    10.954589770191001107946  
-    9.9545897701910011079462  
-    8.9545897701910011079462  
+    15.954589770191001107946
+    15.954589770191001107946
+    15.954589770191001107946
+    15.954589770191001107946
+    14.954589770191001107946
+    13.954589770191001107946
+    12.954589770191001107946
+    11.954589770191001107946
+    10.954589770191001107946
+    9.9545897701910011079462
+    8.9545897701910011079462
 ];
-MY_assert_equal ( computed , expected );
+assert_checkequal(computed, expected);
 //
-computed = assert_cond2reqdigits ( 1.e14 , [0 -1 -2 -3] );
+computed = assert_cond2reqdigits(1.e14, [0 -1 -2 -3]);
 expected = [1.9545897701910011079462    0.9545897701910011079462    0.    0.];
-MY_assert_equal ( computed , expected );
+assert_checkequal(computed, expected);
 //
-computed = assert_cond2reqdigits ( 1.e2 , [0 1 2 3] ) ;
+computed = assert_cond2reqdigits(1.e2, [0 1 2 3]) ;
 expected = [13.954589770191001107946    14.954589770191001107946    15.954589770191001107946    15.954589770191001107946];
-MY_assert_equal ( computed , expected );
+assert_checkequal(computed, expected);
 //
 // Use base-2
 condition = [
@@ -92,37 +82,43 @@ condition = [
  1.e17
  1.e18
 ];
-computed = assert_cond2reqdigits ( condition , [] , 2 );
+computed = assert_cond2reqdigits(condition, [], 2);
 expected = [
-    53.                       
-    53.                       
-    49.678071905112638262381  
-    46.3561438102252765248    
-    43.034215715337914787142  
-    9.814934766464290305521   
-    6.4930066715769214624743  
-    3.1710785766895668302823  
-    0.                        
-    0.                        
-    0.                        
+    53.
+    53.
+    49.678071905112638262381
+    46.3561438102252765248
+    43.034215715337914787142
+    9.814934766464290305521
+    6.4930066715769214624743
+    3.1710785766895668302823
+    0.
+    0.
+    0.
 ];
-MY_assert_equal ( computed , expected );
+assert_checkequal(computed, expected);
 //
 // With offset
-computed = assert_cond2reqdigits ( 1.e2 , [5 4 3 2 1 0 -1 -2 -3 -4 -5]' , 2 );
+computed = assert_cond2reqdigits(1.e2, [5 4 3 2 1 0 -1 -2 -3 -4 -5]', 2);
 expected = [
-    51.3561438102252765248  
-    50.3561438102252765248  
-    49.3561438102252765248  
-    48.3561438102252765248  
-    47.3561438102252765248  
-    46.3561438102252765248  
-    45.3561438102252765248  
-    44.3561438102252765248  
-    43.3561438102252765248  
-    42.3561438102252765248  
-    41.3561438102252765248  
+    51.3561438102252765248
+    50.3561438102252765248
+    49.3561438102252765248
+    48.3561438102252765248
+    47.3561438102252765248
+    46.3561438102252765248
+    45.3561438102252765248
+    44.3561438102252765248
+    43.3561438102252765248
+    42.3561438102252765248
+    41.3561438102252765248
 ];
-MY_assert_equal ( computed , expected );
+
+// check complex not supported, only "complex real" (zero as imaginary part)
+assert_checkequal(computed, expected);
+assert_checkerror("assert_cond2reqdigits(%i)", "assert_cond2reqdigits: Wrong value for input argument #1: Must be real.");
+
+assert_checkequal(assert_cond2reqdigits(1 + 0*%i, [], 2), 53);
+
 
 funcprot(1);