aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2014-10-18 20:37:56 +0000
committerNick Burch <nick@apache.org>2014-10-18 20:37:56 +0000
commit9517e9254e415875016f556a7e7fe436453a7c9e (patch)
tree370f11ee36bd6b1e8c048adab7a9a2de87a110cb
parent1cd3797dda4ffed3ce8d4a161f0558ce759d6603 (diff)
downloadpoi-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.java52
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());
+ }
}