Correction of error messages for dsearch (bug #12783) 33/12233/1
Charlotte HECQUET [Mon, 5 Aug 2013 15:19:15 +0000 (17:19 +0200)]
Change-Id: I7e91d334f098bca019f5c19d5c9613438a774d25

scilab/modules/elementary_functions/sci_gateway/fortran/sci_f_dsearch.f
scilab/modules/elementary_functions/tests/nonreg_tests/bug_12783.dia.ref
scilab/modules/elementary_functions/tests/nonreg_tests/bug_12783.tst

index 556c990..62c5b2f 100644 (file)
@@ -70,6 +70,9 @@ c     TEXT
 
 c     get val
       il = iadr(lstk(top))
+      if (istk(il) < 0) then
+        il = iadr(istk(il + 1));
+      endif
       if (istk(il) .ne. 1) then
         err = 2
         call error(202)
@@ -111,6 +114,9 @@ c     get val
       
 c     get X
       il = iadr(lstk(top))
+      if (istk(il) < 0) then
+        il = iadr(istk(il + 1));
+      endif
       if (istk(il) .ne. 1) then
         err = 1
         call error(202)
index 320c2bd..62264db 100644 (file)
@@ -18,3 +18,8 @@ errmsg1 = msprintf(_("%s: Wrong type for argument #%d: Real matrix expected.\n")
 assert_checkerror("dsearch(int8([ 1 5 7]), [3 4 7 10], ""d"")", errmsg1);
 errmsg2 = msprintf(_("%s: Wrong type for argument #%d: Real matrix expected.\n"), "dsearch", 2);
 assert_checkerror("dsearch([1 5 7], int8([3 4 7 10]), ""d"")", errmsg2);
+m=50000;
+n=10;
+X=grand(m,1,"def");
+s=linspace(0,1,n)';
+assert_checktrue(execstr("[ind, occ] = dsearch(X, s);", "errcatch")==0);
index 5101a6f..6a16849 100644 (file)
@@ -20,3 +20,9 @@ assert_checkerror("dsearch(int8([ 1 5 7]), [3 4 7 10], ""d"")", errmsg1);
 
 errmsg2 = msprintf(_("%s: Wrong type for argument #%d: Real matrix expected.\n"), "dsearch", 2);
 assert_checkerror("dsearch([1 5 7], int8([3 4 7 10]), ""d"")", errmsg2);
+
+m=50000;
+n=10;
+X=grand(m,1,"def");
+s=linspace(0,1,n)';
+assert_checktrue(execstr("[ind, occ] = dsearch(X, s);", "errcatch")==0);