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 2021/10/10 15:46:01 UTC

svn commit: r1894111 - in /poi/trunk/poi/src/test/java/org/apache/poi/ss: formula/functions/TestIrr.java util/Utils.java

Author: fanningpj
Date: Sun Oct 10 15:46:01 2021
New Revision: 1894111

URL: http://svn.apache.org/viewvc?rev=1894111&view=rev
Log:
[bug-64137] increase max iterations for IRR

Modified:
    poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestIrr.java
    poi/trunk/poi/src/test/java/org/apache/poi/ss/util/Utils.java

Modified: poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestIrr.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestIrr.java?rev=1894111&r1=1894110&r2=1894111&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestIrr.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestIrr.java Sun Oct 10 15:46:01 2021
@@ -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){

Modified: poi/trunk/poi/src/test/java/org/apache/poi/ss/util/Utils.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/util/Utils.java?rev=1894111&r1=1894110&r2=1894111&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/ss/util/Utils.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/ss/util/Utils.java Sun Oct 10 15:46:01 2021
@@ -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);



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