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