* Bug #12993 fixed - Statistics: stdev with no input arguments 08/13008/5
Paul BIGNIER [Fri, 25 Oct 2013 14:38:45 +0000 (16:38 +0200)]
'stdev()' return depended on 'x' being defined in the environment.

Change-Id: If8d459ef2fe70d038b3f678cf33e0dbb7c051991

scilab/CHANGES_5.5.X
scilab/modules/statistics/macros/stdev.sci
scilab/modules/statistics/tests/nonreg_tests/bug_12993.dia.ref [new file with mode: 0644]
scilab/modules/statistics/tests/nonreg_tests/bug_12993.tst [new file with mode: 0644]

index d2a57d8..0ba80b7 100644 (file)
@@ -155,9 +155,11 @@ Scilab Bug Fixes
 
 * Bug #12992 fixed - The sigma value was always equals to "LM" in eigs.
 
+* Bug #12993 fixed - stdev returned value depended on 'x' being defined in the environment.
+
 * Bug #13000 fixed - []./int8(3) and on int8(3)./[] led to an endless recursive.
 
-* Bug #13002 fixed - modulo() and pmodulo() did not support integers & hypermatrices.
+* Bug #13002 fixed - modulo and pmodulo did not support integers & hypermatrices.
 
 * Bug #13003 fixed - String to enum converter added to Java external objects.
 
index 5113793..38f8ee8 100644 (file)
@@ -32,6 +32,10 @@ function sd = stdev(x, o, m)
 
     [lhs, rhs] = argn(0);
 
+    if rhs < 1 then
+        error(msprintf(_("%s: Wrong number of input arguments: %d to %d expected.\n"),"stdev",1,3));
+    end
+
     if rhs < 2 then
         o = "*"
         on = 0
diff --git a/scilab/modules/statistics/tests/nonreg_tests/bug_12993.dia.ref b/scilab/modules/statistics/tests/nonreg_tests/bug_12993.dia.ref
new file mode 100644 (file)
index 0000000..9dbab9e
--- /dev/null
@@ -0,0 +1,22 @@
+// =============================================================================
+// 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.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 12993 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12993
+//
+// <-- Short Description -->
+// stdev with no input arguments gave an erroneous result.
+// =============================================================================
+clear x;
+refMsg = msprintf(_("%s: Wrong number of input arguments: %d to %d expected.\n"), "stdev", 1, 3);
+assert_checkerror("stdev;", refMsg);
+x = 1:3;
+assert_checkerror("stdev;", refMsg);
diff --git a/scilab/modules/statistics/tests/nonreg_tests/bug_12993.tst b/scilab/modules/statistics/tests/nonreg_tests/bug_12993.tst
new file mode 100644 (file)
index 0000000..098c249
--- /dev/null
@@ -0,0 +1,24 @@
+// =============================================================================
+// 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.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 12993 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12993
+//
+// <-- Short Description -->
+// stdev with no input arguments gave an erroneous result.
+// =============================================================================
+
+clear x;
+
+refMsg = msprintf(_("%s: Wrong number of input arguments: %d to %d expected.\n"), "stdev", 1, 3);
+assert_checkerror("stdev;", refMsg);
+x = 1:3;
+assert_checkerror("stdev;", refMsg);