From c8e2fe7f5ed42cb2b53761a59f8c5adaa1d4af6f Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Wed, 8 Feb 2012 17:22:46 +0000 Subject: [PATCH] Unit test from Maciej for bug #51498 git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1241993 13f79535-47bb-0310-9956-ffa450edef68 --- .../ss/formula/functions/TestCountFuncs.java | 31 ++++++++++++++++++ test-data/spreadsheet/51498.xls | Bin 0 -> 13824 bytes 2 files changed, 31 insertions(+) create mode 100644 test-data/spreadsheet/51498.xls diff --git a/src/testcases/org/apache/poi/ss/formula/functions/TestCountFuncs.java b/src/testcases/org/apache/poi/ss/formula/functions/TestCountFuncs.java index 8897feb60e..a01a92aa00 100644 --- a/src/testcases/org/apache/poi/ss/formula/functions/TestCountFuncs.java +++ b/src/testcases/org/apache/poi/ss/formula/functions/TestCountFuncs.java @@ -17,6 +17,9 @@ package org.apache.poi.ss.formula.functions; +import java.util.Arrays; +import java.util.List; + import junit.framework.AssertionFailedError; import junit.framework.TestCase; @@ -36,6 +39,7 @@ 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.usermodel.CellValue; +import org.apache.poi.ss.usermodel.FormulaEvaluator; /** * Test cases for COUNT(), COUNTA() COUNTIF(), COUNTBLANK() @@ -357,6 +361,33 @@ public final class TestCountFuncs extends TestCase { confirmPredicate(false, mp, ErrorEval.REF_INVALID); } + /** + * Bug #51498 - Check that CountIf behaves correctly for GTE, LTE + * and NEQ cases + */ + public void testCountifLTEGTE() throws Exception { + final int REF_COL = 4; + final int EVAL_COL = 3; + + // Note - POI currently agrees with OpenOffice on certain blank cell cases, + // while Excel can differ. This is the list of checks to skip + List skipRowsPendingExcelVsOpenOffice = Arrays.asList( + new Integer[] {3}); + + HSSFWorkbook workbook = HSSFTestDataSamples.openSampleWorkbook("51498.xls"); + FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); + HSSFSheet sheet = workbook.getSheetAt(0); + for (int i = 0; i < 8; i++) { + if (skipRowsPendingExcelVsOpenOffice.contains(i)) { + // Skip the check for now + continue; + } + CellValue expected = evaluator.evaluate(sheet.getRow(i).getCell(REF_COL)); + CellValue actual = evaluator.evaluate(sheet.getRow(i).getCell(EVAL_COL)); + assertEquals(expected.formatAsString(), actual.formatAsString()); + } + } + public void testWildCards() { I_MatchPredicate mp; diff --git a/test-data/spreadsheet/51498.xls b/test-data/spreadsheet/51498.xls new file mode 100644 index 0000000000000000000000000000000000000000..fc50d21d2c2f2b96ccad13c80b49f776080aae46 GIT binary patch literal 13824 zcmeHOTWl0n82)FwyWP^#ZZAM7Wf`^wwxyJUTuMvZt%`xfhKm@8EUASSA+)S%OQgo= zs_=#hMx#EE2*w*R@e&hF)R^*y2}EK-j6M}&d=-r(kO1rV{X5g$9j2t3XjJA*&gK8k z`7iU&xy(5`d-2=yiPN9dToy;@lmfY(E|OplZlFBZro)2zbeg1{SECHb3;!Vx6ov30 zg8_NXyioYfIEn=#m&GR^`_Cd3xq_IGCnY2@H1c%c=)vSu=06ecR~z~a+Axle*MX8D zCxMot4-&1=v{KWLwB1*lcA(}6t_AJe>s!%Iz_-&E*LE*y8r8HEsUe>$&yR|%kQzCM z_UY$Nu&aw~4H(@rEC-}d2IcRqJq2~{dL#Z?3CJ9gXnnM=u zv^KAP*S3NF-T958QYiDYjhb8X<$$KBC3w(LXDf#^tLa*4l$9dAG^NqBEwji(Oo2p0 zy9Gp-MPYYuEZz$(&C-Aiths!RW-e2sna9y3P12UHEOQ6>`qZ=>m0ev~rE6p(d?oHg>c%o5pEzid^@y50NRhKAZkMiORs&+;uj5r46~!&#DWdpzQ=mv?2s zWaEB>L{q{XLP(gI@)$zIUncL#3=FE}{mTiEwNlyFj^6KOM*FCB;>9;tW;=E;!8=6iF z8bD>`G(!&LrYmzS@XPv+NkIWiP_qi+U{fcnK|zNg2zD6MIVmTYCx-)+azc>Pz(g!vY}PFqDRs!gc{7S$gAULKT-nAit> zYo%4z;T5z^HpxcB(rI7SXvuZKgjDAovCswMFwJd8YspKmtylZVMXEz7wkOpIYiGzl zlwxXIr>{aj(*-^b%ntL>7F#?9tnV6rK|c$~T9i2_c;TM%z-_#!1n@%W4D1{e$KL$y z#^(Lu4_*$*(j}k%&;slfBHrG#^Td(!rE4Q1UkA4%a#h}sSb~^B#2cO*N94-<1|l_G z0TWj<@-nc@_VxjTjqy#O=fK|KGy#;mJ)u z%*NLv_MNdGnIWbkYUDA4wonhZyv83~~HSS3kd%(E~DM0eoSWl)Y-hfIfjgXHV;2 LxPQHM>;C@$0^FZs literal 0 HcmV?d00001 -- 2.39.5