Fix tests in elementary_functions: 03/18703/2
Adeline CARNIS [Wed, 23 Nov 2016 10:50:48 +0000 (11:50 +0100)]
bug_12034: error message updated.
bug_10306: test updated since bug #7649
bug_7650: size(m) replace size(m, '*') in isempty function for tlist case
bug_13872: lex_sort is obsolete. test updated.
log1p : ieee(0) added to test the error
bitget : 2^[0 0;0 0] returns [1 0;0 1] instead of [1 1;1 1].

Change-Id: I990711ef65ea965cb44a3339ed19cc2f774ecbdd

scilab/modules/elementary_functions/macros/bitget.sci
scilab/modules/elementary_functions/macros/isempty.sci
scilab/modules/elementary_functions/tests/nonreg_tests/bug_10306.dia.ref
scilab/modules/elementary_functions/tests/nonreg_tests/bug_10306.tst
scilab/modules/elementary_functions/tests/nonreg_tests/bug_12034.dia.ref
scilab/modules/elementary_functions/tests/nonreg_tests/bug_12034.tst
scilab/modules/elementary_functions/tests/nonreg_tests/bug_13872.dia.ref
scilab/modules/elementary_functions/tests/nonreg_tests/bug_13872.tst
scilab/modules/elementary_functions/tests/unit_tests/log1p.dia.ref
scilab/modules/elementary_functions/tests/unit_tests/log1p.tst
scilab/modules/elementary_functions/tests/unit_tests/resize_matrix.dia.ref

index 17f7a1b..9ff00d2 100644 (file)
@@ -89,13 +89,7 @@ function y = bitget(x,pos)
     // Algorithm
     // =========================================================================
 
-    if size(pos,"*") == 1;
-        pos  = ones(x)  * pos;
-    end
 
-    if size(x,"*") == 1;
-        x    = ones(pos) * x;
-    end
 
     if type(x)==8 then
 
@@ -121,6 +115,14 @@ function y = bitget(x,pos)
 
         // type == 1
 
+        if size(pos,"*") == 1;
+            pos  = ones(x)  * pos;
+        end
+
+        if size(x,"*") == 1;
+            x    = ones(pos) * x;
+        end
+
         a     = 2^32;
         mask  = uint32(zeros(pos));
         ytemp = uint32(zeros(pos));
index 75550a8..98823ff 100644 (file)
@@ -50,7 +50,7 @@ function answ = isempty(m)
             answ = size(m, "*") == 0;
         else
             answ = %t;
-            for i = 2:size(m,"*")
+            for i = 2:size(m)
                 answ = answ & (type(m(i))==0 || isempty(m(i)))
                 if ~answ
                     break
index 662844a..899166c 100644 (file)
@@ -20,7 +20,7 @@ assert_checkfalse(isempty(voidelement));
 voidelement = list([],[],[]);
 assert_checktrue(isempty(voidelement));
 voidelement = list(,,,);
-assert_checkfalse(isempty(voidelement));
+assert_checktrue(isempty(voidelement));
 voidelement = list('','','');
 assert_checktrue(isempty(voidelement));
 voidelement = list(2,1,3);
index 57639d6..97d91db 100644 (file)
@@ -23,10 +23,10 @@ voidelement = list([],[],[]);
 assert_checktrue(isempty(voidelement));
 
 voidelement = list(,,,);
-assert_checkfalse(isempty(voidelement));
+assert_checktrue(isempty(voidelement));
 
 voidelement = list('','','');
 assert_checktrue(isempty(voidelement));
 
 voidelement = list(2,1,3);
-assert_checkfalse(isempty(voidelement));
\ No newline at end of file
+assert_checkfalse(isempty(voidelement));
index a0f5221..1c2e6f1 100644 (file)
@@ -15,9 +15,9 @@
 // <-- Short Description -->
 // The max function does not manage empty matrix.
 assert_checkequal(max([],[],[]), []);
-errmsg = msprintf(_("max: null matrix (argument # %d).\n"), 1);
+errmsg = msprintf(_("%s: null matrix (argument # %d).\n"), "max", 1);
 assert_checkerror("max([],1,1)", errmsg, 45);
-errmsg2 = msprintf(_("max: null matrix (argument # %d).\n"), 2);
+errmsg2 = msprintf(_("%s: null matrix (argument # %d).\n"), "max", 2);
 assert_checkerror("max(1,[],[])", errmsg2, 45);
-errmsg3 = msprintf(_("max: null matrix (argument # %d).\n"), 3);
+errmsg3 = msprintf(_("%s: null matrix (argument # %d).\n"), "max", 3);
 assert_checkerror("max(1,1,[])", errmsg3, 45);
index d12daf4..91ccd9a 100644 (file)
@@ -16,9 +16,9 @@
 // The max function does not manage empty matrix.
 
 assert_checkequal(max([],[],[]), []);
-errmsg = msprintf(_("max: null matrix (argument # %d).\n"), 1);
+errmsg = msprintf(_("%s: null matrix (argument # %d).\n"), "max", 1);
 assert_checkerror("max([],1,1)", errmsg, 45);
-errmsg2 = msprintf(_("max: null matrix (argument # %d).\n"), 2);
+errmsg2 = msprintf(_("%s: null matrix (argument # %d).\n"), "max", 2);
 assert_checkerror("max(1,[],[])", errmsg2, 45);
-errmsg3 = msprintf(_("max: null matrix (argument # %d).\n"), 3);
+errmsg3 = msprintf(_("%s: null matrix (argument # %d).\n"), "max", 3);
 assert_checkerror("max(1,1,[])", errmsg3, 45);
index 4b4cd23..c99afbd 100644 (file)
@@ -24,6 +24,12 @@ M1_m=[1.    1.
     2.    2.    
     2.    31. ];
 [N1,k1]=unique(M1_m(1:10,1:2),'r');
-[N2,k2]=lex_sort(M1_m(1:10,1:2),'unique');
+N2 = [1.    1.  
+    1.      30. 
+    1.      125. 
+    1.      199. 
+    2.      2.  
+    2.      31. ];
+k2 = [1 4 5 6 7 10]';
 assert_checkequal(N1, N2);
 assert_checkequal(k1, k2);
index 63bba71..1cd8868 100644 (file)
@@ -28,6 +28,12 @@ M1_m=[1.    1.
     2.    31. ];
 
 [N1,k1]=unique(M1_m(1:10,1:2),'r');
-[N2,k2]=lex_sort(M1_m(1:10,1:2),'unique');
+N2 = [1.    1.  
+    1.      30. 
+    1.      125. 
+    1.      199. 
+    2.      2.  
+    2.      31. ];
+k2 = [1 4 5 6 7 10]';
 assert_checkequal(N1, N2);
 assert_checkequal(k1, k2);
index bb62e0b..9038f83 100644 (file)
@@ -23,4 +23,7 @@ assert_checkalmostequal( log1p(-0.0), log(-0.0 + 1), 1e-5);
 assert_checkalmostequal( log1p(+1.2), log(+1.2 + 1), 1e-5);
 assert_checkalmostequal( log1p(+5.6), log(+5.6 + 1), 1e-5);
 // this corresponds to log(0) which is and should be undefined
-assert_checkerror("log1p(-1)", "log1p: Wrong value for input argument #1 : Singularity of the function.");
+ieee(0);
+errmsg = msprintf(_("%s: Wrong value for input argument #%d : Singularity of the function.\n"), "log1p", 1);
+assert_checkerror("log1p(-1)", errmsg);
+ieee(2);
index c6fdc73..03b3ad6 100644 (file)
@@ -26,4 +26,7 @@ assert_checkalmostequal( log1p(+1.2), log(+1.2 + 1), 1e-5);
 assert_checkalmostequal( log1p(+5.6), log(+5.6 + 1), 1e-5);
 
 // this corresponds to log(0) which is and should be undefined
-assert_checkerror("log1p(-1)", "log1p: Wrong value for input argument #1 : Singularity of the function.");
+ieee(0);
+errmsg = msprintf(_("%s: Wrong value for input argument #%d : Singularity of the function.\n"), "log1p", 1);
+assert_checkerror("log1p(-1)", errmsg);
+ieee(2);
index 2923665..d240d78 100644 (file)
@@ -10,9 +10,9 @@ myMat =[     0.6029980    4.2470508    3.2442814    3.7427533
 4.3037573    4.9656049    0.2502099    3.0422632  ];
 myMat = resize_matrix( myMat, 3, 3 ) // reduce the matrix size
  myMat  = 
-    0.6029980    4.2470508    3.2442814
-    1.4276821    2.6285304    4.9615955
-    4.3037573    4.9656049    0.2502099
+   0.602998    4.2470508   3.2442814
+   1.4276821   2.6285304   4.9615955
+   4.3037573   4.9656049   0.2502099
 refMat=[0.602998,4.2470508,3.2442814;
 1.4276821,2.6285304,4.9615955;
 4.3037573,4.9656049,0.2502099];