* Bug #13527 fixed - hilb did not check correctly the type of first input argument. 02/15002/2
Vladislav TRUBKIN [Thu, 7 Aug 2014 13:05:22 +0000 (15:05 +0200)]
Change-Id: I4096c111809031f740ba7f7ab50d4e0f11c7b2b9

scilab/CHANGES_5.5.X
scilab/modules/signal_processing/macros/hilb.sci
scilab/modules/signal_processing/tests/nonreg_tests/bug_13527.dia.ref [new file with mode: 0644]
scilab/modules/signal_processing/tests/nonreg_tests/bug_13527.tst [new file with mode: 0644]

index f6e085a..f047794 100644 (file)
@@ -186,6 +186,8 @@ Scilab Bug Fixes
 
 * Bug #13515 fixed - There were wrong results for matrix/hypermatrix with bitset function.
 
+* Bug #13527 fixed - hilb did not check correctly the type of first input argument.
+
 
 Xcos Bug Fixes
 ==============
index ab121ce..c4f1dc8 100644 (file)
@@ -38,6 +38,9 @@ function xh=hilb(n,wtype,par)
     if type(n)<>1|size(n,"*")<>1 then
         error(msprintf(gettext("%s: Wrong size for input argument #%d: A scalar expected.\n"),"hilb",1));
     end
+    if (n - floor(n) <> 0) | (floor(n/2) == n/2) then
+        error(msprintf(gettext("%s: Wrong type for input argument #%d: An odd integer expected.\n"),"hilb",1));
+    end
     if and(wtype<>["re","tr","hn","hm","kr","ch"]) then
         error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n") ,"hilb",2,"''re'',''tr'',''hn'',''hm'',''kr'',''ch''"));
 
diff --git a/scilab/modules/signal_processing/tests/nonreg_tests/bug_13527.dia.ref b/scilab/modules/signal_processing/tests/nonreg_tests/bug_13527.dia.ref
new file mode 100644 (file)
index 0000000..8f00d40
--- /dev/null
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Vladislav TRUBKIN
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 13527 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13527
+//
+// <-- Short Description -->
+// hilb must be called only with an odd integer number of points
+//
+lstr = gettext("%s: Wrong type for input argument #%d: An odd integer expected.\n");
+errmsg = msprintf (lstr, "hilb", 1);
+// KO
+assert_checkerror("hilb(2)", errmsg);
+assert_checkerror("hilb(14)", errmsg);
+assert_checkerror("hilb(26)", errmsg);
+assert_checkerror("hilb(26.5)", errmsg);
+assert_checkerror("hilb(27.5)", errmsg);
+// OK
+assert_checkequal(execstr("hilb(3)", "errcatch"), 0);
+assert_checkequal(execstr("hilb(7)", "errcatch"), 0);
diff --git a/scilab/modules/signal_processing/tests/nonreg_tests/bug_13527.tst b/scilab/modules/signal_processing/tests/nonreg_tests/bug_13527.tst
new file mode 100644 (file)
index 0000000..8f00d40
--- /dev/null
@@ -0,0 +1,25 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2014 - Scilab Enterprises - Vladislav TRUBKIN
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 13527 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/13527
+//
+// <-- Short Description -->
+// hilb must be called only with an odd integer number of points
+//
+lstr = gettext("%s: Wrong type for input argument #%d: An odd integer expected.\n");
+errmsg = msprintf (lstr, "hilb", 1);
+// KO
+assert_checkerror("hilb(2)", errmsg);
+assert_checkerror("hilb(14)", errmsg);
+assert_checkerror("hilb(26)", errmsg);
+assert_checkerror("hilb(26.5)", errmsg);
+assert_checkerror("hilb(27.5)", errmsg);
+// OK
+assert_checkequal(execstr("hilb(3)", "errcatch"), 0);
+assert_checkequal(execstr("hilb(7)", "errcatch"), 0);