*/
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) {
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();
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);
}
}
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);
}
}
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);
}
}
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);
}
}