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 11:21:41 UTC

svn commit: r1894103 - in /poi/trunk/poi/src: main/java/org/apache/poi/ss/formula/functions/Quotient.java test/java/org/apache/poi/ss/formula/functions/TestQuotient.java

Author: fanningpj
Date: Sun Oct 10 11:21:41 2021
New Revision: 1894103

URL: http://svn.apache.org/viewvc?rev=1894103&view=rev
Log:
[bug-62040] quotient function does not support cell references

Modified:
    poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Quotient.java
    poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestQuotient.java

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Quotient.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Quotient.java?rev=1894103&r1=1894102&r2=1894103&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Quotient.java (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/formula/functions/Quotient.java Sun Oct 10 11:21:41 2021
@@ -45,14 +45,16 @@ public class Quotient extends Fixed2ArgF
 
         double enumerator;
         try {
-            enumerator = OperandResolver.coerceValueToDouble(venumerator);
+            ValueEval ve = OperandResolver.getSingleValue(venumerator, srcRowIndex, srcColumnIndex);
+            enumerator = OperandResolver.coerceValueToDouble(ve);
         } catch (EvaluationException e) {
             return ErrorEval.VALUE_INVALID;
         }
 
         double denominator;
         try {
-            denominator = OperandResolver.coerceValueToDouble(vedenominator);
+            ValueEval ve = OperandResolver.getSingleValue(vedenominator, srcRowIndex, srcColumnIndex);
+            denominator = OperandResolver.coerceValueToDouble(ve);
         } catch (EvaluationException e) {
             return ErrorEval.VALUE_INVALID;
         }

Modified: poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestQuotient.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestQuotient.java?rev=1894103&r1=1894102&r2=1894103&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestQuotient.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestQuotient.java Sun Oct 10 11:21:41 2021
@@ -16,14 +16,22 @@
 ==================================================================== */
 package org.apache.poi.ss.formula.functions;
 
+import static org.apache.poi.ss.util.Utils.addRow;
+import static org.apache.poi.ss.util.Utils.assertDouble;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.formula.eval.ErrorEval;
 import org.apache.poi.ss.formula.eval.NumberEval;
 import org.apache.poi.ss.formula.eval.StringEval;
 import org.apache.poi.ss.formula.eval.ValueEval;
 import org.junit.jupiter.api.Test;
 
+import java.io.IOException;
+
 /**
  * Tests for {@link Quotient}
  */
@@ -63,4 +71,15 @@ class TestQuotient {
 
         confirmValueError("dividing by zero", "3.14159", "0", ErrorEval.DIV_ZERO);
     }
+
+    @Test
+    void testWithCellRefs() throws IOException {
+        try (HSSFWorkbook wb = new HSSFWorkbook()) {
+            HSSFSheet sheet = wb.createSheet();
+            addRow(sheet, 0, 5, 2);
+            HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
+            HSSFCell cell = wb.getSheetAt(0).getRow(0).createCell(100);
+            assertDouble(fe, cell, "QUOTIENT(A1, B1)", 2.0);
+        }
+    }
 }
\ No newline at end of file



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