Fix test of %sp_max & %sp_min functions 12/8712/4
Adeline CARNIS [Thu, 16 Aug 2012 09:00:53 +0000 (11:00 +0200)]
test_run("sparse", "bug_4654")
Change-Id: I3aadffb908691370fbe00e793db0b94042287fca

scilab/modules/elementary_functions/macros/%sp_max.sci
scilab/modules/elementary_functions/macros/%sp_min.sci
scilab/modules/sparse/tests/nonreg_tests/bug_4654.dia.ref
scilab/modules/sparse/tests/nonreg_tests/bug_4654.tst

index 967857e..16a3903 100644 (file)
@@ -43,16 +43,25 @@ function [m, k] = %sp_max(varargin)
         // Retrieves entries of sparse matrix
         [ij, v, mn]= spget(A1);
         if lhs == 1 then
-            m = max(v);
+            if v == [] then
+                m = 0;
+            else
+                m = max(v);
+            end
         else
-            [m, i] = max(v);
-            if mn(1) == 1 then
-                k = ij(i,2);
+            if v == [] then
+                m = 0;
+                k = [1 1];
             else
-                if mn(2) == 1 then
-                    k = ij(i,1);
+                [m, i] = max(v);
+                if mn(1) == 1 then
+                    k = ij(i,2);
                 else
-                    k = [ij(i,1) ij(i,2)];
+                    if mn(2) == 1 then
+                        k = ij(i,1);
+                    else
+                        k = [ij(i,1) ij(i,2)];
+                    end
                 end
             end
         end
index dd19c54..bdd99b8 100644 (file)
@@ -43,16 +43,25 @@ function [m, k] = %sp_min(varargin)
         // Retrieves entries of sparse matrix
         [ij, v, mn]= spget(A1);
         if lhs == 1 then
-            m = min(v);
+            if v == [] then
+                m = 0;
+            else
+                m = min(v);
+            end
         else
-            [m, i] = min(v);
-            if mn(1) == 1 then
-                k = ij(i,2);
+            if v == [] then
+                m = 0;
+                k = [1 1];
             else
-                if mn(2) == 1 then
-                    k = ij(i,1);
+                [m, i] = min(v);
+                if mn(1) == 1 then
+                    k = ij(i,2);
                 else
-                    k = [ij(i,1) ij(i,2)];
+                    if mn(2) == 1 then
+                        k = ij(i,1);
+                    else
+                        k = [ij(i,1) ij(i,2)];
+                    end
                 end
             end
         end
index 3dbeafa..8aec8ff 100644 (file)
@@ -1,6 +1,7 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2009 - DIGITEO - Yann COLLETTE <yann.collette@scilab.fr>
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
@@ -13,5 +14,5 @@
 // <-- Short Description -->
 // max of an empty sparse matrix makes Scilab hangs
 [v, ij] = max(sprand(50,50,0));
-if v~=0 then bugmes();quit;end
-if ~isempty(ij) then bugmes();quit;end
+assert_checkequal(v, 0);
+assert_checkequal(ij, [1 1]);
index 2bf2b0b..4e29bd8 100644 (file)
@@ -1,6 +1,7 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) 2009 - DIGITEO - Yann COLLETTE <yann.collette@scilab.fr>
+// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
@@ -17,5 +18,5 @@
 
 [v, ij] = max(sprand(50,50,0));
 
-if v~=0 then pause,end
-if ~isempty(ij) then pause,end
+assert_checkequal(v, 0);
+assert_checkequal(ij, [1 1]);