aboutsummaryrefslogtreecommitdiffstats
path: root/src/scratchpad/testcases
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2007-09-25 13:37:02 +0000
committerNick Burch <nick@apache.org>2007-09-25 13:37:02 +0000
commit597ccbf577c0ffca5936ffa5b370220b4788d9cd (patch)
tree6ce324a6032ae457d655a4a6980ded1fd25b3bb9 /src/scratchpad/testcases
parentc8a47d4f138506d55b1a409b4456afeeee48c84d (diff)
downloadpoi-597ccbf577c0ffca5936ffa5b370220b4788d9cd.tar.gz
poi-597ccbf577c0ffca5936ffa5b370220b4788d9cd.zip
Implement the date function, patch from Pavel
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@579244 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/scratchpad/testcases')
-rw-r--r--src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestDate.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestDate.java b/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestDate.java
new file mode 100644
index 0000000000..2c5e152ab8
--- /dev/null
+++ b/src/scratchpad/testcases/org/apache/poi/hssf/record/formula/functions/TestDate.java
@@ -0,0 +1,100 @@
+/*
+ * Created on Sep 11, 2007
+ *
+ * The Copyright statements and Licenses for the commons application may be
+ * found in the file LICENSE.txt
+ */
+
+package org.apache.poi.hssf.record.formula.functions;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
+
+/**
+ * @author Pavel Krupets (pkrupets at palmtreebusiness dot com)
+ */
+public class TestDate extends TestCase {
+ public void setUp() {
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet("new sheet");
+ HSSFRow row1 = sheet.createRow((short) 0);
+
+ this.cell11 = row1.createCell((short) 0);
+
+ this.evaluator = new HSSFFormulaEvaluator(sheet, wb);
+ this.evaluator.setCurrentRow(row1);
+ }
+
+ /**
+ * Test disabled pending a fix in the formula parser
+ */
+ public void DISABLEDtestSomeArgumentsMissing() throws Exception {
+ this.cell11.setCellFormula("DATE(, 1, 0)");
+ assertEquals(0.0, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(, 1, 1)");
+ assertEquals(1.0, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+ }
+
+ public void testValid() throws Exception {
+ this.cell11.setCellType(HSSFCell.CELL_TYPE_FORMULA);
+
+ this.cell11.setCellFormula("DATE(1900, 1, 1)");
+ assertEquals(1, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(1900, 1, 32)");
+ assertEquals(32, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(1900, 222, 1)");
+ assertEquals(6727, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(1900, 2, 0)");
+ assertEquals(31, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(2000, 1, 222)");
+ assertEquals(36747.00, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(2007, 1, 1)");
+ assertEquals(39083, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+ }
+
+ public void testBugDate() {
+ this.cell11.setCellFormula("DATE(1900, 2, 29)");
+ assertEquals(60, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(1900, 2, 30)");
+ assertEquals(61, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(1900, 1, 222)");
+ assertEquals(222, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(1900, 1, 2222)");
+ assertEquals(2222, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(1900, 1, 22222)");
+ assertEquals(22222, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+ }
+
+ public void testPartYears() {
+ this.cell11.setCellFormula("DATE(4, 1, 1)");
+ assertEquals(1462.00, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(14, 1, 1)");
+ assertEquals(5115.00, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(104, 1, 1)");
+ assertEquals(37987.00, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+
+ this.cell11.setCellFormula("DATE(1004, 1, 1)");
+ assertEquals(366705.00, this.evaluator.evaluate(this.cell11).getNumberValue(), 0);
+ }
+
+ private HSSFCell cell11;
+ private HSSFFormulaEvaluator evaluator;
+}
+