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 2022/10/11 18:11:02 UTC

svn commit: r1904531 - /poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestAbs.java

Author: fanningpj
Date: Tue Oct 11 18:11:02 2022
New Revision: 1904531

URL: http://svn.apache.org/viewvc?rev=1904531&view=rev
Log:
add ABS test

Added:
    poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestAbs.java
      - copied, changed from r1904460, poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestAverage.java

Copied: poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestAbs.java (from r1904460, poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestAverage.java)
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestAbs.java?p2=poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestAbs.java&p1=poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestAverage.java&r1=1904460&r2=1904531&rev=1904531&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestAverage.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestAbs.java Tue Oct 11 18:11:02 2022
@@ -17,8 +17,11 @@
 
 package org.apache.poi.ss.formula.functions;
 
-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.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.formula.eval.BlankEval;
 import org.apache.poi.ss.formula.eval.BoolEval;
 import org.apache.poi.ss.formula.eval.ErrorEval;
@@ -26,76 +29,41 @@ import org.apache.poi.ss.formula.eval.Nu
 import org.apache.poi.ss.formula.eval.ValueEval;
 import org.junit.jupiter.api.Test;
 
-/**
- * Tests for Excel function AVERAGE()
- */
-final class TestAverage {
-
-    private static ValueEval invokeAverage(ValueEval[] args) {
-        return AggregateFunction.AVERAGE.evaluate(args, -1, (short)-1);
-    }
-
-    private void confirmAverage(ValueEval[] args, double expected) {
-        ValueEval result = invokeAverage(args);
-        assertEquals(NumberEval.class, result.getClass());
-        assertEquals(expected, ((NumberEval)result).getNumberValue(), 0);
-    }
-
-    private void confirmAverage(ValueEval[] args, ErrorEval expectedError) {
-        ValueEval result = invokeAverage(args);
-        assertEquals(ErrorEval.class, result.getClass());
-        assertEquals(expectedError.getErrorCode(), ((ErrorEval)result).getErrorCode());
-    }
-
-    @Test
-    void testBasic() {
+import java.io.IOException;
 
-        ValueEval[] values = {
-                new NumberEval(1),
-                new NumberEval(2),
-                new NumberEval(3),
-                new NumberEval(4),
-        };
-
-        confirmAverage(values, 2.5);
-
-        values = new ValueEval[] {
-                new NumberEval(1),
-                new NumberEval(2),
-                BlankEval.instance,
-                new NumberEval(3),
-                BlankEval.instance,
-                new NumberEval(4),
-                BlankEval.instance,
-        };
+import static org.apache.poi.ss.util.Utils.assertDouble;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-        confirmAverage(values, 2.5);
-    }
+/**
+ * Tests for Excel function ABS()
+ */
+final class TestAbs {
 
-    /**
-     * Valid cases where values are not pure numbers
-     */
     @Test
-    void testUnusualArgs() {
-        ValueEval[] values = {
-                new NumberEval(1),
-                new NumberEval(2),
-                BoolEval.TRUE,
-                BoolEval.FALSE,
-        };
-
-        confirmAverage(values, 1.0);
-
+    void testBasic() throws IOException {
+        try (HSSFWorkbook wb = new HSSFWorkbook()) {
+            HSSFSheet sheet = wb.createSheet();
+            HSSFRow row = sheet.createRow(0);
+            HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
+            HSSFCell cell = row.createCell(12);
+            assertDouble(fe, cell, "ABS(-4)", 4, 0.0000000001);
+            assertDouble(fe, cell, "ABS(-4.123)", 4.123, 0.0000000001);
+        }
     }
 
     @Test
-    void testErrors() {
-        ValueEval[] values = {
-                new NumberEval(1),
-                ErrorEval.NAME_INVALID,
-                new NumberEval(3),
-                ErrorEval.DIV_ZERO,
-        };
-        confirmAverage(values, ErrorEval.NAME_INVALID);
+    void testRange() throws IOException {
+        try (HSSFWorkbook wb = new HSSFWorkbook()) {
+            HSSFSheet sheet = wb.createSheet();
+            HSSFRow row0 = sheet.createRow(0);
+            HSSFRow row1 = sheet.createRow(1);
+            row0.createCell(0).setCellValue(1);
+            row1.createCell(1).setCellValue(-2);
+            HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
+            HSSFCell cell = row0.createCell(12);
+            assertDouble(fe, cell, "ABS(A1:A2)", 1, 0.0000000001);
+            HSSFCell cell2 = row1.getCell(12);
+            //https://bz.apache.org/bugzilla/show_bug.cgi?id=66303 -- this should be non-null and contain a value of 2
+        }
     }
 }



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