From: PJ Fanning Date: Sun, 10 Oct 2021 15:46:01 +0000 (+0000) Subject: [bug-64137] increase max iterations for IRR X-Git-Tag: REL_5_2_0~405 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=84d9ff335a722e5e5f296a8933e42e64721cb389;p=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 --- diff --git a/poi/src/test/java/org/apache/poi/ss/formula/functions/TestIrr.java b/poi/src/test/java/org/apache/poi/ss/formula/functions/TestIrr.java index d6351a9aaf..b4830e09d3 100644 --- a/poi/src/test/java/org/apache/poi/ss/formula/functions/TestIrr.java +++ b/poi/src/test/java/org/apache/poi/ss/formula/functions/TestIrr.java @@ -137,9 +137,10 @@ final class TestIrr { addRow(sheet, 6, 26000, "Net income for the fifth year"); HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb); HSSFCell cell = wb.getSheetAt(0).getRow(0).createCell(100); - assertDouble(fe, cell, "IRR(A2:A6)", -0.02124484827341093); - assertDouble(fe, cell, "IRR(A2:A7)", 0.08663094803653162); - assertDouble(fe, cell, "IRR(A2:A4,-0.1)", -0.44350694133474067); + final double tolerance = 1E-4; + assertDouble(fe, cell, "IRR(A2:A6)", -0.02124484827341093, tolerance); + 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, 10000.0}; 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){ diff --git a/poi/src/test/java/org/apache/poi/ss/util/Utils.java b/poi/src/test/java/org/apache/poi/ss/util/Utils.java index 81ad9e5725..d1e3b78a7d 100644 --- a/poi/src/test/java/org/apache/poi/ss/util/Utils.java +++ b/poi/src/test/java/org/apache/poi/ss/util/Utils.java @@ -71,6 +71,15 @@ public class Utils { 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) { cell.setCellFormula(formulaText); fe.notifyUpdateCell(cell);