diff options
author | Nick Burch <nick@apache.org> | 2014-10-18 20:37:56 +0000 |
---|---|---|
committer | Nick Burch <nick@apache.org> | 2014-10-18 20:37:56 +0000 |
commit | 9517e9254e415875016f556a7e7fe436453a7c9e (patch) | |
tree | 370f11ee36bd6b1e8c048adab7a9a2de87a110cb | |
parent | 1cd3797dda4ffed3ce8d4a161f0558ce759d6603 (diff) | |
download | poi-9517e9254e415875016f556a7e7fe436453a7c9e.tar.gz poi-9517e9254e415875016f556a7e7fe436453a7c9e.zip |
Start on unit tests for the problem reported in stackoverflow post 26437323
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1632841 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java b/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java index 5e044886c3..0f20edc8f4 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java +++ b/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java @@ -527,4 +527,56 @@ public abstract class BaseTestBugzillaIssues { assertAlmostEquals(2225, s.getColumnWidth(11), fontAccuracy); } + /** + * =ISNUMBER(SEARCH("*AM*",A1)) not evaluating properly + */ + //@Test + public void stackoverflow26437323() throws Exception { + Workbook wb = _testDataProvider.createWorkbook(); + Sheet s = wb.createSheet(); + Row r1 = s.createRow(0); + Row r2 = s.createRow(1); + + // A1 is a number + r1.createCell(0).setCellValue(1.1); + // B1 is a string, with the wanted text in it + r1.createCell(1).setCellValue("This is text with AM in it"); + // C1 is a string, with different text + r1.createCell(2).setCellValue("This some other text"); + // D1 is a blank cell + r1.createCell(3, Cell.CELL_TYPE_BLANK); + // E1 is null + + // A2 will hold our test formulas + Cell cf = r2.createCell(0, Cell.CELL_TYPE_FORMULA); + + + // First up, check that TRUE and ISLOGICAL both behave + cf.setCellFormula("TRUE()"); + cf = evaluateCell(wb, cf); + assertEquals(true, cf.getBooleanCellValue()); + + cf.setCellFormula("ISLOGICAL(TRUE())"); + cf = evaluateCell(wb, cf); + assertEquals(true, cf.getBooleanCellValue()); + + cf.setCellFormula("ISLOGICAL(4)"); + cf = evaluateCell(wb, cf); + assertEquals(false, cf.getBooleanCellValue()); + + + // Now, check ISNUMBER / ISTEXT / ISNONTEXT + // TODO + + // Next up, SEARCH on its own + // TODO + + // Finally, bring it all together + // TODO + } + private Cell evaluateCell(Workbook wb, Cell c) { + Sheet s = c.getSheet(); + wb.getCreationHelper().createFormulaEvaluator().evaluate(c); + return s.getRow(c.getRowIndex()).getCell(c.getColumnIndex()); + } } |