* Bug #13605 fixed - There was an inverted result value with parameters 'r' or 'c... 61/15361/4
Vladislav TRUBKIN [Fri, 10 Oct 2014 08:20:19 +0000 (10:20 +0200)]
Change-Id: I83f4b9a36ddefcedb7638ceeda76eb58e42b10af

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

index 2a85e63..6c0e3ef 100644 (file)
@@ -25,6 +25,8 @@ Scilab Bug Fixes
 
 * Bug #13549 fixed - Slider uicontrols triggered three callbacks instead of one.
 
+* Bug #13605 fixed - harmean returned an inverted result when called with parameters "r" or "c".
+
 * Bug #13673 fixed - Anti-aliasing of xpoly marks did not render correctly.
 
 * Bug #13674 fixed - User .wgetrc configuration file is now by-passed when ATOMS does not use a proxy.
@@ -44,6 +46,7 @@ Scilab Bug Fixes
 * Bug #13712 fixed - Details added in strcat help page for strcat(strings, "", "r") case.
 
 
+
                      Changes between version 5.5.0 and 5.5.1
                      =======================================
 
index bccc3e1..4261019 100644 (file)
@@ -46,7 +46,7 @@ function [hm]=harmean(x,orien)
             le = bool2s(x<>0)*ones(size(x,2),1)
         else error(msprintf(gettext("%s: Wrong value for input argument #%d: ''%s'', ''%s'', %d or %d expected.\n"),"harmean",2,"r","c",1,2)), end
         x(x==0) = %inf
-        hm = sum(1 ./x,orien) ./le
+        hm = 1 ./(sum(1 ./x,orien) ./le)
     else
         error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"),"harmean",1,2)),
     end
diff --git a/scilab/modules/statistics/tests/nonreg_tests/bug_13605.dia.ref b/scilab/modules/statistics/tests/nonreg_tests/bug_13605.dia.ref
new file mode 100644 (file)
index 0000000..53c7484
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// 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 13605 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13605
+//
+// <-- Short Description -->
+// There was an inverted result value with parameters "r" or "c".
+a = [1:10; 1:10];
+withParam = harmean(a, "c");
+withoutParam = harmean(a(1, :));
+assert_checkequal(withParam(1), withoutParam);
+assert_checkequal(withParam(2), withoutParam);
+a = [1:10; 1:10]';
+withParam = harmean(a, "r");
+withoutParam = harmean(a(:, 1));
+assert_checkequal(withParam(1), withoutParam);
+assert_checkequal(withParam(2), withoutParam);
diff --git a/scilab/modules/statistics/tests/nonreg_tests/bug_13605.tst b/scilab/modules/statistics/tests/nonreg_tests/bug_13605.tst
new file mode 100644 (file)
index 0000000..98e66bf
--- /dev/null
@@ -0,0 +1,24 @@
+// =============================================================================
+// 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 13605 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13605
+//
+// <-- Short Description -->
+// There was an inverted result value with parameters "r" or "c".
+
+a = [1:10; 1:10];
+withParam = harmean(a, "c");
+withoutParam = harmean(a(1, :));
+assert_checkequal(withParam(1), withoutParam);
+assert_checkequal(withParam(2), withoutParam);
+a = [1:10; 1:10]';
+withParam = harmean(a, "r");
+withoutParam = harmean(a(:, 1));
+assert_checkequal(withParam(1), withoutParam);
+assert_checkequal(withParam(2), withoutParam);