* Bug #9627 fixed - Checking arguments in optimsimplex_*() functions 31/12431/9
Paul BIGNIER [Thu, 5 Sep 2013 11:01:32 +0000 (13:01 +0200)]
Change-Id: Iee8d3037760a3803def5f0409c721510cf4d83c4

20 files changed:
scilab/CHANGES_5.5.X
scilab/modules/optimization/macros/optimsimplex/optimsimplex_check.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_getall.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_getallfv.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_getallx.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_getfv.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_getn.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_getnbve.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_getve.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_getx.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_setall.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_setallfv.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_setallx.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_setfv.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_setn.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_setnbve.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_setve.sci
scilab/modules/optimization/macros/optimsimplex/optimsimplex_setx.sci
scilab/modules/optimization/tests/nonreg_tests/bug_9627.dia.ref [new file with mode: 0644]
scilab/modules/optimization/tests/nonreg_tests/bug_9627.tst [new file with mode: 0644]

index 6c6848d..87dde33 100644 (file)
@@ -29,6 +29,8 @@ Scilab Bug Fixes
 
 * Bug #9110 fixed - Examples and references to other functions added in the Statistics help pages.
 
+* Bug #9627 fixed - Arguments checking added in optimsimplex_* functions.
+
 * Bug #9697 fixed - Printed information for optim "qn" and "gc" with bounds and imp=1 fixed.
 
 * Bug #10175 fixed - Clearer example added for sp2adj to adj2sp conversion (and backwards conversion).
index 73a6662..98809e8 100644 (file)
@@ -17,6 +17,9 @@
 //   <no arg>
 //
 function optimsimplex_check ( this )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_check", 1));
+    end
     nx1 = size(this.x,1)
     nx2 = size(this.x,2)
     if this.nbve<> 0 & nx1 <> this.nbve then
@@ -34,4 +37,3 @@ function optimsimplex_check ( this )
         error(msprintf(gettext("%s: Number of columns of fv is %d, which is different from 1."),"optimsimplex_check" , nf2 ));
     end
 endfunction
-
index 6ebf116..90afc75 100644 (file)
 //   <no arg>
 //
 function simplex = optimsimplex_getall ( this )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getall", 1));
+    end
     simplex = zeros ( this.nbve , this.n+1 );
     simplex ( 1:this.nbve , 1 ) = this.fv ( 1:this.nbve , 1 )
     simplex ( 1:this.nbve , 2:this.n+1 ) = this.x ( 1:this.nbve , 1:this.n )
 endfunction
-
index 8ca5a65..c7ce57c 100644 (file)
@@ -18,6 +18,8 @@
 //   <no arg>
 //
 function fv = optimsimplex_getallfv ( this )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getallfv", 1));
+    end
     fv = this.fv ( 1:this.nbve , 1 )
 endfunction
-
index 5a4b2e3..636b404 100644 (file)
@@ -17,6 +17,8 @@
 //   <no arg>
 //
 function x = optimsimplex_getallx ( this )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getallx", 1));
+    end
     x = this.x ( 1:this.nbve , 1:this.n )
 endfunction
-
index ad9bd51..93ad303 100644 (file)
 //   ive : vertex index
 //
 function fv = optimsimplex_getfv ( this , ive )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getfv", 1));
+    end
+    if type(ive) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_getfv", 2));
+    end
+    if or(size(ive) <> [1 1]) then
+        error(msprintf(gettext("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_getfv", 2));
+    end
+    if ive-floor(ive) <> 0 then
+        error(msprintf(gettext("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_getfv", 2));
+    end
     fv = this.fv ( ive , 1 )
 endfunction
-
index 97447dd..efdc3c2 100644 (file)
@@ -15,6 +15,8 @@
 //   <no arg>
 //
 function n = optimsimplex_getn ( this )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getn", 1));
+    end
     n = this.n
 endfunction
-
index 35f4dd7..105d240 100644 (file)
@@ -15,6 +15,8 @@
 //   <no arg>
 //
 function n = optimsimplex_getnbve ( this )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getnbve", 1));
+    end
     n = this.nbve
 endfunction
-
index 9e61e21..0a0167e 100644 (file)
 //   ive : vertex index
 //
 function vertex = optimsimplex_getve ( this , ive )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getve", 1));
+    end
+    if type(ive) <> 1| or(size(ive) <> [1 1]) then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_getve", 2));
+    end
+    if ive-floor(ive) <> 0 then
+        error(msprintf(gettext("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_getve", 2));
+    end
     vertex = tlist(["T_VERTEX","x","n","fv"]);
     vertex.n = this.n;
     vertex.x = this.x ( ive , : );
     vertex.fv = this.fv ( ive );
 endfunction
-
index f09517b..038b66a 100644 (file)
 //   ive : vertex index
 //
 function x = optimsimplex_getx ( this , ive )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getx", 1));
+    end
+    if type(ive) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_getx", 2));
+    end
+    if or(size(ive) <> [1 1]) then
+        error(msprintf(gettext("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_getx", 2));
+    end
+    if ive-floor(ive) <> 0 then
+        error(msprintf(gettext("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_getx", 2));
+    end
     x = this.x ( ive , : )
 endfunction
-
index 9d5fb8c..4d03484 100644 (file)
 //   simplex : the simplex to set
 //
 function this = optimsimplex_setall ( this , simplex )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setall", 1));
+    end
+    if typeof(simplex) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setall", 2));
+    end
     nbve = size(simplex,1)
     np1 = size(simplex,2)
     if np1 > nbve then
@@ -31,4 +37,3 @@ function this = optimsimplex_setall ( this , simplex )
     this.fv ( 1:nbve , 1 ) = simplex ( 1:nbve , 1 )
     this.x ( 1:nbve , 1:this.n ) = simplex ( 1:nbve , 2:this.n+1 )
 endfunction
-
index 3ef0ff5..652a583 100644 (file)
 //   fv : the array of function values
 //
 function this = optimsimplex_setallfv ( this , fv )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setallfv", 1));
+    end
+    if type(fv) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real vector expected.\n"), "optimsimplex_setallfv", 2));
+    end
     fv1 = size ( fv , 1 );
     if fv1 <> this.nbve then
         error ( msprintf ( gettext ( "%s: The number of rows in the function value array is %d, while expected %d." ), "optimsimplex_setallfv" , fv1 , this.nbve ))
@@ -27,4 +33,3 @@ function this = optimsimplex_setallfv ( this , fv )
     end
     this.fv ( 1:this.nbve , 1 ) = fv ( 1:this.nbve );
 endfunction
-
index 3eb7291..02dd7d8 100644 (file)
 //   x : the coordinates of the vertices.
 //
 function this = optimsimplex_setallx ( this , x )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setallx", 1));
+    end
+    if type(x) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "optimsimplex_setallx", 2));
+    end
     nx1 = size ( x , 1 );
     if nx1 <> this.nbve then
         error ( msprintf ( gettext ( "%s: The number of rows in x is %d, while expected %d." ), "optimsimplex_setallx" , nx1 , this.nbve ))
@@ -27,4 +33,3 @@ function this = optimsimplex_setallx ( this , x )
     end
     this.x ( 1:this.nbve , 1:this.n ) = x ( 1:this.nbve , 1:this.n );
 endfunction
-
index 074cce2..e74dae7 100644 (file)
 //   fv : the function value
 //
 function this = optimsimplex_setfv ( this , ive , fv )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setfv", 1));
+    end
+    if type(ive) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setfv", 2));
+    end
+    if type(fv) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real vector expected.\n"), "optimsimplex_setfv", 3));
+    end
+    if or(size(ive) <> [1 1]) then
+        error(msprintf(gettext("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setfv", 2));
+    end
+    if ive-floor(ive) <> 0 then
+        error(msprintf(gettext("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setfv", 2));
+    end
     this.fv ( ive , 1 ) = fv;
 endfunction
-
index ac1a8d1..277e210 100644 (file)
 //   n : the dimension
 //
 function this = optimsimplex_setn ( this , n )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setn", 1));
+    end
+    if type(n) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setn", 2));
+    end
+    if or(size(n) <> [1 1]) then
+        error(msprintf(gettext("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setn", 2));
+    end
+    if n-floor(n) <> 0 then
+        error(msprintf(gettext("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setn", 2));
+    end
     this.n = n;
 endfunction
-
index 5d251a8..dcbf4a8 100644 (file)
 //   nbve : the number of vertices
 //
 function this = optimsimplex_setnbve ( this , nbve )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setnbve", 1));
+    end
+    if type(nbve) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setnbve", 2));
+    end
+    if or(size(nbve) <> [1 1]) then
+        error(msprintf(gettext("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setnbve", 2));
+    end
+    if nbve-floor(nbve) <> 0 then
+        error(msprintf(gettext("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setnbve", 2));
+    end
     this.nbve = nbve;
 endfunction
-
index 7097989..4e94bd6 100644 (file)
 //   x : the coordinates of the point, as a row vector
 //
 function this = optimsimplex_setve ( this , ive , fv , x )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setve", 1));
+    end
+    if type(ive) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setve", 2));
+    end
+    if type(fv) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real vector expected.\n"), "optimsimplex_setve", 3));
+    end
+    if type(x) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "optimsimplex_setve", 4));
+    end
+    if or(size(ive) <> [1 1]) then
+        error(msprintf(gettext("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setve", 2));
+    end
+    if ive-floor(ive) <> 0 then
+        error(msprintf(gettext("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setve", 2));
+    end
     this.x(ive,:) = x;
     this.fv(ive,1) = fv;
 endfunction
-
index 8dc9b4e..5cb2d3f 100644 (file)
 //   ive : vertex index
 //
 function this = optimsimplex_setx ( this , ive , x )
+    if typeof(this) <> "TSIMPLEX" then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setx", 1));
+    end
+    if type(ive) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setx", 2));
+    end
+    if type(x) <> 1 then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "optimsimplex_setx", 3));
+    end
+    if or(size(ive) <> [1 1]) then
+        error(msprintf(gettext("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setx", 2));
+    end
+    if ive-floor(ive) <> 0 then
+        error(msprintf(gettext("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setx", 2));
+    end
     this.x ( ive , 1:this.n ) = x(1:this.n);
 endfunction
-
diff --git a/scilab/modules/optimization/tests/nonreg_tests/bug_9627.dia.ref b/scilab/modules/optimization/tests/nonreg_tests/bug_9627.dia.ref
new file mode 100644 (file)
index 0000000..c1937a6
--- /dev/null
@@ -0,0 +1,139 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- ENGLISH IMPOSED -->
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 9627 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9627
+//
+// <-- Short Description -->
+// The optimsimplex_set*() functions did not check any arguments:
+//
+// optimsimplex_check
+s1 = optimsimplex_new ();
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_check", 1);
+assert_checkerror("s1 = optimsimplex_check(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_check(%t);",refMsg);
+// optimsimplex_getall
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getall", 1);
+assert_checkerror("s1 = optimsimplex_getall(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getall(%t);",refMsg);
+// optimsimplex_getallfv
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getallfv", 1);
+assert_checkerror("s1 = optimsimplex_getallfv(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getallfv(%t);",refMsg);
+// optimsimplex_getallx
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getallx", 1);
+assert_checkerror("s1 = optimsimplex_getallx(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getallx(%t);",refMsg);
+// optimsimplex_getfv
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getfv", 1);
+assert_checkerror("s1 = optimsimplex_getfv(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getfv(%t);",refMsg);
+// optimsimplex_getn
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getn", 1);
+assert_checkerror("s1 = optimsimplex_getn(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getn(%t);",refMsg);
+// optimsimplex_getnbve
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getnbve", 1);
+assert_checkerror("s1 = optimsimplex_getnbve(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getnbve(%t);",refMsg);
+// optimsimplex_getve
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getve", 1);
+assert_checkerror("s1 = optimsimplex_getve(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getve(%t);",refMsg);
+// optimsimplex_getx
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getx", 1);
+assert_checkerror("s1 = optimsimplex_getx(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getx(%t);",refMsg);
+// optimsimplex_setall
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setall", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setall", 2);
+assert_checkerror("s1 = optimsimplex_setall(1, s1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setall(""s1"", s1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setall(s1, 1);",refMsg2);
+assert_checkerror("s1 = optimsimplex_setall(s1, ""s1"");",refMsg2);
+// optimsimplex_setallfv
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setallfv", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real vector expected.\n"), "optimsimplex_setallfv", 2);
+assert_checkerror("s1 = optimsimplex_setallfv(1, [1 2]);",refMsg);
+assert_checkerror("s1 = optimsimplex_setallfv(""s1"", [1 2]);",refMsg);
+assert_checkerror("s1 = optimsimplex_setallfv(s1, ""1"");",refMsg2);
+assert_checkerror("s1 = optimsimplex_setallfv(s1, %t);",refMsg2);
+// optimsimplex_setallx
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setallx", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "optimsimplex_setallx", 2);
+assert_checkerror("s1 = optimsimplex_setallx(1, [1 2]);",refMsg);
+assert_checkerror("s1 = optimsimplex_setallx(""s1"", [1 2]);",refMsg);
+assert_checkerror("s1 = optimsimplex_setallx(s1, ""1"");",refMsg2);
+assert_checkerror("s1 = optimsimplex_setallx(s1, %t);",refMsg2);
+// optimsimplex_setfv
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setfv", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setfv", 2);
+refMsg3 = msprintf(_("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setfv", 2);
+refMsg4 = msprintf(_("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setfv", 2);
+refMsg5 = msprintf(_("%s: Wrong type for input argument #%d: A real vector expected.\n"), "optimsimplex_setfv", 3);
+assert_checkerror("s1 = optimsimplex_setfv(1, 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setfv(""s1"", 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setfv(s1, ""1"", 1);",refMsg2);
+assert_checkerror("s1 = optimsimplex_setfv(s1, [1 1], 1);",refMsg3);
+assert_checkerror("s1 = optimsimplex_setfv(s1, 1.5, 1);",refMsg4);
+assert_checkerror("s1 = optimsimplex_setfv(s1, 1, ""1"");",refMsg5);
+assert_checkerror("s1 = optimsimplex_setfv(s1, 1, %t);",refMsg5);
+// optimsimplex_setn
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setn", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setn", 2);
+refMsg3 = msprintf(_("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setn", 2);
+refMsg4 = msprintf(_("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setn", 2);
+assert_checkerror("s1 = optimsimplex_setn(1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setn(""s1"", 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setn(s1, ""1"");",refMsg2);
+assert_checkerror("s1 = optimsimplex_setn(s1, [1 1]);",refMsg3);
+assert_checkerror("s1 = optimsimplex_setn(s1, 1.5);",refMsg4);
+// optimsimplex_setnbve
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setnbve", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setnbve", 2);
+refMsg3 = msprintf(_("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setnbve", 2);
+refMsg4 = msprintf(_("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setnbve", 2);
+assert_checkerror("s1 = optimsimplex_setnbve(1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setnbve(""s1"", 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setnbve(s1, ""1"");",refMsg2);
+assert_checkerror("s1 = optimsimplex_setnbve(s1, [1 1]);",refMsg3);
+assert_checkerror("s1 = optimsimplex_setnbve(s1, 1.5);",refMsg4);
+// optimsimplex_setve
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setve", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setve", 2);
+refMsg3 = msprintf(_("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setve", 2);
+refMsg4 = msprintf(_("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setve", 2);
+refMsg5 = msprintf(_("%s: Wrong type for input argument #%d: A real vector expected.\n"), "optimsimplex_setve", 3);
+refMsg6 = msprintf(_("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "optimsimplex_setve", 4);
+assert_checkerror("s1 = optimsimplex_setve(1, 1, 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setve(""s1"", 1, 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setve(s1, ""1"", 1, 1);",refMsg2);
+assert_checkerror("s1 = optimsimplex_setve(s1, [1 1], 1, 1);",refMsg3);
+assert_checkerror("s1 = optimsimplex_setve(s1, 1.5, 1, 1);",refMsg4);
+assert_checkerror("s1 = optimsimplex_setve(s1, 1, ""1"", 1);",refMsg5);
+assert_checkerror("s1 = optimsimplex_setve(s1, 1, %t, 1);",refMsg5);
+assert_checkerror("s1 = optimsimplex_setve(s1, 1, 1, ""1"");",refMsg6);
+assert_checkerror("s1 = optimsimplex_setve(s1, 1, 1, %t);",refMsg6);
+// optimsimplex_setx
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setx", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setx", 2);
+refMsg3 = msprintf(_("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setx", 2);
+refMsg4 = msprintf(_("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setx", 2);
+refMsg5 = msprintf(_("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "optimsimplex_setx", 3);
+assert_checkerror("s1 = optimsimplex_setx(1, 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setx(""s1"", 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setx(s1, ""1"", 1);",refMsg2);
+assert_checkerror("s1 = optimsimplex_setx(s1, [1 1], 1);",refMsg3);
+assert_checkerror("s1 = optimsimplex_setx(s1, 1.5, 1);",refMsg4);
+assert_checkerror("s1 = optimsimplex_setx(s1, 1, ""1"");",refMsg5);
+assert_checkerror("s1 = optimsimplex_setx(s1, 1, %t);",refMsg5);
diff --git a/scilab/modules/optimization/tests/nonreg_tests/bug_9627.tst b/scilab/modules/optimization/tests/nonreg_tests/bug_9627.tst
new file mode 100644 (file)
index 0000000..7b70af4
--- /dev/null
@@ -0,0 +1,156 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- ENGLISH IMPOSED -->
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 9627 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9627
+//
+// <-- Short Description -->
+// The optimsimplex_set*() functions did not check any arguments:
+//
+
+// optimsimplex_check
+s1 = optimsimplex_new ();
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_check", 1);
+assert_checkerror("s1 = optimsimplex_check(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_check(%t);",refMsg);
+
+// optimsimplex_getall
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getall", 1);
+assert_checkerror("s1 = optimsimplex_getall(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getall(%t);",refMsg);
+
+// optimsimplex_getallfv
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getallfv", 1);
+assert_checkerror("s1 = optimsimplex_getallfv(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getallfv(%t);",refMsg);
+
+// optimsimplex_getallx
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getallx", 1);
+assert_checkerror("s1 = optimsimplex_getallx(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getallx(%t);",refMsg);
+
+// optimsimplex_getfv
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getfv", 1);
+assert_checkerror("s1 = optimsimplex_getfv(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getfv(%t);",refMsg);
+
+// optimsimplex_getn
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getn", 1);
+assert_checkerror("s1 = optimsimplex_getn(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getn(%t);",refMsg);
+
+// optimsimplex_getnbve
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getnbve", 1);
+assert_checkerror("s1 = optimsimplex_getnbve(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getnbve(%t);",refMsg);
+
+// optimsimplex_getve
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getve", 1);
+assert_checkerror("s1 = optimsimplex_getve(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getve(%t);",refMsg);
+
+// optimsimplex_getx
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_getx", 1);
+assert_checkerror("s1 = optimsimplex_getx(""1"");",refMsg);
+assert_checkerror("s1 = optimsimplex_getx(%t);",refMsg);
+
+// optimsimplex_setall
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setall", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setall", 2);
+assert_checkerror("s1 = optimsimplex_setall(1, s1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setall(""s1"", s1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setall(s1, 1);",refMsg2);
+assert_checkerror("s1 = optimsimplex_setall(s1, ""s1"");",refMsg2);
+
+// optimsimplex_setallfv
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setallfv", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real vector expected.\n"), "optimsimplex_setallfv", 2);
+assert_checkerror("s1 = optimsimplex_setallfv(1, [1 2]);",refMsg);
+assert_checkerror("s1 = optimsimplex_setallfv(""s1"", [1 2]);",refMsg);
+assert_checkerror("s1 = optimsimplex_setallfv(s1, ""1"");",refMsg2);
+assert_checkerror("s1 = optimsimplex_setallfv(s1, %t);",refMsg2);
+
+// optimsimplex_setallx
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setallx", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "optimsimplex_setallx", 2);
+assert_checkerror("s1 = optimsimplex_setallx(1, [1 2]);",refMsg);
+assert_checkerror("s1 = optimsimplex_setallx(""s1"", [1 2]);",refMsg);
+assert_checkerror("s1 = optimsimplex_setallx(s1, ""1"");",refMsg2);
+assert_checkerror("s1 = optimsimplex_setallx(s1, %t);",refMsg2);
+
+// optimsimplex_setfv
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setfv", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setfv", 2);
+refMsg3 = msprintf(_("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setfv", 2);
+refMsg4 = msprintf(_("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setfv", 2);
+refMsg5 = msprintf(_("%s: Wrong type for input argument #%d: A real vector expected.\n"), "optimsimplex_setfv", 3);
+assert_checkerror("s1 = optimsimplex_setfv(1, 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setfv(""s1"", 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setfv(s1, ""1"", 1);",refMsg2);
+assert_checkerror("s1 = optimsimplex_setfv(s1, [1 1], 1);",refMsg3);
+assert_checkerror("s1 = optimsimplex_setfv(s1, 1.5, 1);",refMsg4);
+assert_checkerror("s1 = optimsimplex_setfv(s1, 1, ""1"");",refMsg5);
+assert_checkerror("s1 = optimsimplex_setfv(s1, 1, %t);",refMsg5);
+
+// optimsimplex_setn
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setn", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setn", 2);
+refMsg3 = msprintf(_("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setn", 2);
+refMsg4 = msprintf(_("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setn", 2);
+assert_checkerror("s1 = optimsimplex_setn(1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setn(""s1"", 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setn(s1, ""1"");",refMsg2);
+assert_checkerror("s1 = optimsimplex_setn(s1, [1 1]);",refMsg3);
+assert_checkerror("s1 = optimsimplex_setn(s1, 1.5);",refMsg4);
+
+// optimsimplex_setnbve
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setnbve", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setnbve", 2);
+refMsg3 = msprintf(_("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setnbve", 2);
+refMsg4 = msprintf(_("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setnbve", 2);
+assert_checkerror("s1 = optimsimplex_setnbve(1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setnbve(""s1"", 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setnbve(s1, ""1"");",refMsg2);
+assert_checkerror("s1 = optimsimplex_setnbve(s1, [1 1]);",refMsg3);
+assert_checkerror("s1 = optimsimplex_setnbve(s1, 1.5);",refMsg4);
+
+// optimsimplex_setve
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setve", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setve", 2);
+refMsg3 = msprintf(_("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setve", 2);
+refMsg4 = msprintf(_("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setve", 2);
+refMsg5 = msprintf(_("%s: Wrong type for input argument #%d: A real vector expected.\n"), "optimsimplex_setve", 3);
+refMsg6 = msprintf(_("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "optimsimplex_setve", 4);
+assert_checkerror("s1 = optimsimplex_setve(1, 1, 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setve(""s1"", 1, 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setve(s1, ""1"", 1, 1);",refMsg2);
+assert_checkerror("s1 = optimsimplex_setve(s1, [1 1], 1, 1);",refMsg3);
+assert_checkerror("s1 = optimsimplex_setve(s1, 1.5, 1, 1);",refMsg4);
+assert_checkerror("s1 = optimsimplex_setve(s1, 1, ""1"", 1);",refMsg5);
+assert_checkerror("s1 = optimsimplex_setve(s1, 1, %t, 1);",refMsg5);
+assert_checkerror("s1 = optimsimplex_setve(s1, 1, 1, ""1"");",refMsg6);
+assert_checkerror("s1 = optimsimplex_setve(s1, 1, 1, %t);",refMsg6);
+
+// optimsimplex_setx
+refMsg = msprintf(_("%s: Wrong type for input argument #%d: TSIMPLEX expected.\n"), "optimsimplex_setx", 1);
+refMsg2 = msprintf(_("%s: Wrong type for input argument #%d: A real scalar expected.\n"), "optimsimplex_setx", 2);
+refMsg3 = msprintf(_("%s: Wrong size for input argument #%d: A real scalar expected.\n"), "optimsimplex_setx", 2);
+refMsg4 = msprintf(_("%s: Wrong value for input argument #%d: An integer expected.\n"), "optimsimplex_setx", 2);
+refMsg5 = msprintf(_("%s: Wrong type for input argument #%d: A real matrix expected.\n"), "optimsimplex_setx", 3);
+assert_checkerror("s1 = optimsimplex_setx(1, 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setx(""s1"", 1, 1);",refMsg);
+assert_checkerror("s1 = optimsimplex_setx(s1, ""1"", 1);",refMsg2);
+assert_checkerror("s1 = optimsimplex_setx(s1, [1 1], 1);",refMsg3);
+assert_checkerror("s1 = optimsimplex_setx(s1, 1.5, 1);",refMsg4);
+assert_checkerror("s1 = optimsimplex_setx(s1, 1, ""1"");",refMsg5);
+assert_checkerror("s1 = optimsimplex_setx(s1, 1, %t);",refMsg5);