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/12/06 11:54:39 UTC

svn commit: r1895618 - /poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/atp/TestXMatchFunction.java

Author: fanningpj
Date: Mon Dec  6 11:54:38 2021
New Revision: 1895618

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

Modified:
    poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/atp/TestXMatchFunction.java

Modified: poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/atp/TestXMatchFunction.java
URL: http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/atp/TestXMatchFunction.java?rev=1895618&r1=1895617&r2=1895618&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/atp/TestXMatchFunction.java (original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/atp/TestXMatchFunction.java Mon Dec  6 11:54:38 2021
@@ -36,7 +36,7 @@ public class TestXMatchFunction {
     //https://support.microsoft.com/en-us/office/xmatch-function-d966da31-7a6b-4a13-a1c6-5a33ed6a0312
     @Test
     void testMicrosoftExample0() throws IOException {
-        try (HSSFWorkbook wb = initWorkbook("Grape")) {
+        try (HSSFWorkbook wb = initNumWorkbook("Grape")) {
             HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
             HSSFCell cell = wb.getSheetAt(0).getRow(2).createCell(5);
             assertDouble(fe, cell, "XMATCH(E3,C3:C7)", 2);
@@ -46,7 +46,7 @@ public class TestXMatchFunction {
 
     @Test
     void testMicrosoftExample1() throws IOException {
-        try (HSSFWorkbook wb = initWorkbook("Gra?")) {
+        try (HSSFWorkbook wb = initNumWorkbook("Gra?")) {
             HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
             HSSFCell cell = wb.getSheetAt(0).getRow(2).createCell(5);
             assertDouble(fe, cell, "XMATCH(E3,C3:C7,1)", 2);
@@ -57,7 +57,22 @@ public class TestXMatchFunction {
         }
     }
 
-    private HSSFWorkbook initWorkbook(String lookup) {
+    @Test
+    void testMicrosoftExample2() throws IOException {
+        //the result in this example is correct but the description seems wrong from my testing
+        //the result is based on the position and not a count
+        try (HSSFWorkbook wb = initWorkbook2()) {
+            HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
+            HSSFCell cell = wb.getSheetAt(0).getRow(3).createCell(5);
+            assertDouble(fe, cell, "XMATCH(F2,C3:C9,1)", 4);
+            assertDouble(fe, cell, "XMATCH(F2,C3:C9,-1)", 5);
+            assertError(fe, cell, "XMATCH(F2,C3:C9,2)", FormulaError.NA);
+            assertDouble(fe, cell, "XMATCH(35000,C3:C9,1)", 2);
+            assertDouble(fe, cell, "XMATCH(36000,C3:C9,1)", 1);
+        }
+    }
+
+    private HSSFWorkbook initNumWorkbook(String lookup) {
         HSSFWorkbook wb = new HSSFWorkbook();
         HSSFSheet sheet = wb.createSheet();
         addRow(sheet, 0);
@@ -70,4 +85,19 @@ public class TestXMatchFunction {
         return wb;
     }
 
+    private HSSFWorkbook initWorkbook2() {
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet sheet = wb.createSheet();
+        addRow(sheet, 0);
+        addRow(sheet, 1, null, "Sales Rep", "Total Sales", null, "Bonus", 15000);
+        addRow(sheet, 2, null, "Michael Neipper", 42000);
+        addRow(sheet, 3, null, "Jan Kotas", 35000);
+        addRow(sheet, 4, null, "Nancy Freehafer", 25000);
+        addRow(sheet, 5, null, "Andrew Cencini", 15901);
+        addRow(sheet, 6, null, "Anne Hellung-Larsen", 13801);
+        addRow(sheet, 7, null, "Nancy Freehafer", 12181);
+        addRow(sheet, 8, null, "Mariya Sergienko", 9201);
+        return wb;
+    }
+
 }



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