mirror of https://github.com/apache/poi.git
[bug-64137] increase max iterations for IRR
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894111 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
08f6de47f6
commit
84d9ff335a
|
@ -137,9 +137,10 @@ final class TestIrr {
|
||||||
addRow(sheet, 6, 26000, "Net income for the fifth year");
|
addRow(sheet, 6, 26000, "Net income for the fifth year");
|
||||||
HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
|
HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
|
||||||
HSSFCell cell = wb.getSheetAt(0).getRow(0).createCell(100);
|
HSSFCell cell = wb.getSheetAt(0).getRow(0).createCell(100);
|
||||||
assertDouble(fe, cell, "IRR(A2:A6)", -0.02124484827341093);
|
final double tolerance = 1E-4;
|
||||||
assertDouble(fe, cell, "IRR(A2:A7)", 0.08663094803653162);
|
assertDouble(fe, cell, "IRR(A2:A6)", -0.02124484827341093, tolerance);
|
||||||
assertDouble(fe, cell, "IRR(A2:A4,-0.1)", -0.44350694133474067);
|
assertDouble(fe, cell, "IRR(A2:A7)", 0.08663094803653162, tolerance);
|
||||||
|
assertDouble(fe, cell, "IRR(A2:A4,-0.1)", -0.44350694133474067, tolerance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,7 +155,7 @@ final class TestIrr {
|
||||||
1462.8749999999998, 1462.8749999999998, 1462.8749999999998, 1462.8749999999998, 1462.8749999999998,
|
1462.8749999999998, 1462.8749999999998, 1462.8749999999998, 1462.8749999999998, 1462.8749999999998,
|
||||||
1462.8749999999998, 1462.8749999999998, 1462.8749999999998, 10000.0};
|
1462.8749999999998, 1462.8749999999998, 1462.8749999999998, 10000.0};
|
||||||
double result = Irr.irr(incomes);
|
double result = Irr.irr(incomes);
|
||||||
assertEquals(-0.009463562705856032, result);
|
assertEquals(-0.009463562705856032, result, 1E-4); // should agree within 0.01%
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void assertFormulaResult(CellValue cv, HSSFCell cell){
|
private static void assertFormulaResult(CellValue cv, HSSFCell cell){
|
||||||
|
|
|
@ -71,6 +71,15 @@ public class Utils {
|
||||||
assertEquals(expectedResult, result.getNumberValue());
|
assertEquals(expectedResult, result.getNumberValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void assertDouble(FormulaEvaluator fe, Cell cell, String formulaText,
|
||||||
|
double expectedResult, double tolerance) {
|
||||||
|
cell.setCellFormula(formulaText);
|
||||||
|
fe.notifyUpdateCell(cell);
|
||||||
|
CellValue result = fe.evaluate(cell);
|
||||||
|
assertEquals(CellType.NUMERIC, result.getCellType());
|
||||||
|
assertEquals(expectedResult, result.getNumberValue(), tolerance);
|
||||||
|
}
|
||||||
|
|
||||||
public static void assertError(FormulaEvaluator fe, Cell cell, String formulaText, FormulaError expectedError) {
|
public static void assertError(FormulaEvaluator fe, Cell cell, String formulaText, FormulaError expectedError) {
|
||||||
cell.setCellFormula(formulaText);
|
cell.setCellFormula(formulaText);
|
||||||
fe.notifyUpdateCell(cell);
|
fe.notifyUpdateCell(cell);
|
||||||
|
|
Loading…
Reference in New Issue