You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2022/06/05 19:55:50 UTC

svn commit: r1901687 - in /poi/trunk/poi/src: main/java/org/apache/poi/ss/formula/atp/ main/java/org/apache/poi/ss/formula/functions/ test/java/org/apache/poi/ss/formula/functions/

Author: fanningpj
Date: Sun Jun  5 19:55:50 2022
New Revision: 1901687

URL: http://svn.apache.org/viewvc?rev=1901687&view=rev
Log:
add COVARIANCE.S function

Modified:
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/AnalysisToolPak.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Covar.java
    poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCovar.java

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/AnalysisToolPak.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/AnalysisToolPak.java?rev=1901687&r1=1901686&r2=1901687&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/AnalysisToolPak.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/atp/AnalysisToolPak.java Sun Jun  5 19:55:50 2022
@@ -91,6 +91,7 @@ public final class AnalysisToolPak imple
         r(m, "COUPNUM", null);
         r(m, "COUPPCD", null);
         r(m, "COVARIANCE.P", Covar.instanceP);
+        r(m, "COVARIANCE.S", Covar.instanceS);
         r(m, "CUBEKPIMEMBER", null);
         r(m, "CUBEMEMBER", null);
         r(m, "CUBEMEMBERPROPERTY", null);

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java?rev=1901687&r1=1901686&r2=1901687&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Correl.java Sun Jun  5 19:55:50 2022
@@ -42,6 +42,8 @@ public class Correl extends TwoArrayFunc
 
     public static final Correl instance = new Correl();
 
+    private Correl() {}
+
     @Override
     public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1) {
         try {

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Covar.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Covar.java?rev=1901687&r1=1901686&r2=1901687&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Covar.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Covar.java Sun Jun  5 19:55:50 2022
@@ -37,7 +37,14 @@ import java.util.List;
  */
 public class Covar extends TwoArrayFunction implements FreeRefFunction {
 
-    public static final Covar instanceP = new Covar();
+    public static final Covar instanceP = new Covar(false);
+    public static final Covar instanceS = new Covar(true);
+
+    private final boolean sampleBased;
+
+    private Covar(boolean sampleBased) {
+        this.sampleBased = sampleBased;
+    }
 
     @Override
     public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1) {
@@ -45,7 +52,7 @@ public class Covar extends TwoArrayFunct
             final List<DoubleList> arrays = getNumberArrays(arg0, arg1);
             final Covariance covar = new Covariance();
             final double result = covar.covariance(
-                    arrays.get(0).toArray(), arrays.get(1).toArray(), false);
+                    arrays.get(0).toArray(), arrays.get(1).toArray(), sampleBased);
             return new NumberEval(result);
         } catch (EvaluationException e) {
             return e.getErrorEval();

Modified: poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCovar.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCovar.java?rev=1901687&r1=1901686&r2=1901687&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCovar.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestCovar.java Sun Jun  5 19:55:50 2022
@@ -46,6 +46,7 @@ final class TestCovar {
             HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
             assertDouble(fe, cell, "COVAR(A2:A6,B2:B6)", 5.2, 0.0000000005);
             assertDouble(fe, cell, "COVARIANCE.P(A2:A6,B2:B6)", 5.2, 0.0000000005);
+            assertDouble(fe, cell, "COVARIANCE.S(A2:A6,B2:B6)", 6.5, 0.0000000005);
         }
     }
 
@@ -58,6 +59,7 @@ final class TestCovar {
             HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
             assertDouble(fe, cell, "COVAR(A2:A6,B2:B6)", 5.5625, 0.0000000005);
             assertDouble(fe, cell, "COVARIANCE.P(A2:A6,B2:B6)", 5.5625, 0.0000000005);
+            assertDouble(fe, cell, "COVARIANCE.S(A2:A6,B2:B6)", 7.416666666666666, 0.0000000005);
         }
     }
 
@@ -70,6 +72,7 @@ final class TestCovar {
             HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
             assertDouble(fe, cell, "COVAR(A2:A6,B2:B6)", 5.5625, 0.0000000005);
             assertDouble(fe, cell, "COVARIANCE.P(A2:A6,B2:B6)", 5.5625, 0.0000000005);
+            assertDouble(fe, cell, "COVARIANCE.S(A2:A6,B2:B6)", 7.416666666666666, 0.0000000005);
         }
     }
 
@@ -82,8 +85,10 @@ final class TestCovar {
             HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
             assertError(fe, cell, "COVAR(A2:A6,B2:B5)", FormulaError.NA);
             assertError(fe, cell, "COVARIANCE.P(A2:A6,B2:B5)", FormulaError.NA);
+            assertError(fe, cell, "COVARIANCE.S(A2:A6,B2:B5)", FormulaError.NA);
             assertError(fe, cell, "COVAR(A2:B6,B2:B6)", FormulaError.NA);
             assertError(fe, cell, "COVARIANCE.P(A2:B6,B2:B6)", FormulaError.NA);
+            assertError(fe, cell, "COVARIANCE.S(A2:B6,B2:B6)", FormulaError.NA);
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org