]> source.dussan.org Git - poi.git/commitdiff
add initial version of DCount and broken test
authorPJ Fanning <fanningpj@apache.org>
Wed, 25 May 2022 13:02:33 +0000 (13:02 +0000)
committerPJ Fanning <fanningpj@apache.org>
Wed, 25 May 2022 13:02:33 +0000 (13:02 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1901239 13f79535-47bb-0310-9956-ffa450edef68

poi/src/test/java/org/apache/poi/ss/formula/functions/TestDCount.java
poi/src/test/java/org/apache/poi/ss/formula/functions/TestDGet.java

index f30d1564e38f776d2b489ea1b0a456c893115a56..65af098221af0d14444a9bc557ff03b9849614f0 100644 (file)
@@ -21,7 +21,6 @@ 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.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
@@ -35,13 +34,14 @@ import static org.apache.poi.ss.util.Utils.assertDouble;
 public class TestDCount {
 
     //https://support.microsoft.com/en-us/office/dcount-function-c1fc7b93-fb0d-4d8d-97db-8d5f076eaeb1
-    @Disabled
     @Test
     void testMicrosoftExample1() throws IOException {
         try (HSSFWorkbook wb = initWorkbook1()) {
             HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
             HSSFCell cell = wb.getSheetAt(0).getRow(0).createCell(100);
-            assertDouble(fe, cell, "DCOUNT(A5:E11, \"Age\", A1:F2)", 1);
+            assertDouble(fe, cell, "DCOUNT(A5:E11, \"Age\", A1:A2)", 3);
+            //next one returns 0 in error
+            //assertDouble(fe, cell, "DCOUNT(A5:E11, \"Age\", A1:F2)", 1);
         }
     }
 
@@ -49,14 +49,14 @@ public class TestDCount {
         HSSFWorkbook wb = new HSSFWorkbook();
         HSSFSheet sheet = wb.createSheet();
         addRow(sheet, 0, "Tree", "Height", "Age", "Yield", "Profit", "Height");
-        addRow(sheet, 1, "=\"=Apple\"", ">10", null, null, null, "<16");
-        addRow(sheet, 2, "=\"=Pear\"");
+        addRow(sheet, 1, "=Apple", ">10", null, null, null, "<16");
+        addRow(sheet, 2, "=Pear");
         addRow(sheet, 3);
         addRow(sheet, 4, "Tree", "Height", "Age", "Yield", "Profit");
         addRow(sheet, 5, "Apple", 18, 20, 14, 105);
         addRow(sheet, 6, "Pear", 12, 12, 10, 96);
         addRow(sheet, 7, "Cherry", 13, 14, 9, 105);
-        addRow(sheet, 8, "Apple", 14, "N/A", 10, 75);
+        addRow(sheet, 8, "Apple", 14, null, 10, 75);
         addRow(sheet, 9, "Pear", 9, 8, 8, 77);
         addRow(sheet, 10, "Apple", 12, 11, 6, 45);
         return wb;
index 92ddef7f7c7633095d8c8896a28713615051ab87..7b6f6eeb2826cccffbc7df727b88babad18c108e 100644 (file)
@@ -21,13 +21,14 @@ 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.junit.jupiter.api.Disabled;
+import org.apache.poi.ss.usermodel.FormulaError;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
 
 import static org.apache.poi.ss.util.Utils.addRow;
 import static org.apache.poi.ss.util.Utils.assertDouble;
+import static org.apache.poi.ss.util.Utils.assertError;
 
 /**
  * Testcase for function DGET()
@@ -35,13 +36,14 @@ import static org.apache.poi.ss.util.Utils.assertDouble;
 public class TestDGet {
 
     //https://support.microsoft.com/en-us/office/dget-function-455568bf-4eef-45f7-90f0-ec250d00892e
-    @Disabled
     @Test
     void testMicrosoftExample1() throws IOException {
         try (HSSFWorkbook wb = initWorkbook1()) {
             HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
             HSSFCell cell = wb.getSheetAt(0).getRow(0).createCell(100);
-            assertDouble(fe, cell, "DGET(A5:E11, \"Yield\", A1:F3)", 10);
+            assertError(fe, cell, "DGET(A5:E11, \"Yield\", A1:A3)", FormulaError.NUM);
+            //next one fails - no match found when it should match and return 10
+            //assertDouble(fe, cell, "DGET(A5:E11, \"Yield\", A1:F3)", 10);
         }
     }
 
@@ -49,14 +51,14 @@ public class TestDGet {
         HSSFWorkbook wb = new HSSFWorkbook();
         HSSFSheet sheet = wb.createSheet();
         addRow(sheet, 0, "Tree", "Height", "Age", "Yield", "Profit", "Height");
-        addRow(sheet, 1, "=\"=Apple\"", ">10", null, null, null, "<16");
-        addRow(sheet, 2, "=\"=Pear\"", ">12");
+        addRow(sheet, 1, "=Apple", ">10", null, null, null, "<16");
+        addRow(sheet, 2, "=Pear", ">12");
         addRow(sheet, 3);
         addRow(sheet, 4, "Tree", "Height", "Age", "Yield", "Profit");
         addRow(sheet, 5, "Apple", 18, 20, 14, 105);
         addRow(sheet, 6, "Pear", 12, 12, 10, 96);
         addRow(sheet, 7, "Cherry", 13, 14, 9, 105);
-        addRow(sheet, 8, "Apple", 14, "N/A", 10, 75);
+        addRow(sheet, 8, "Apple", 14, null, 10, 75);
         addRow(sheet, 9, "Pear", 9, 8, 8, 77);
         addRow(sheet, 10, "Apple", 12, 11, 6, 45);
         return wb;