]> source.dussan.org Git - poi.git/commitdiff
Shuffle some bits of TestFormulaParser into scratchpad, so it can find HSSFFormulaEva...
authorNick Burch <nick@apache.org>
Wed, 9 Jan 2008 09:22:20 +0000 (09:22 +0000)
committerNick Burch <nick@apache.org>
Wed, 9 Jan 2008 09:22:20 +0000 (09:22 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@610313 13f79535-47bb-0310-9956-ffa450edef68

src/scratchpad/testcases/org/apache/poi/hssf/model/TestFormulaParserSP.java [new file with mode: 0644]
src/testcases/org/apache/poi/hssf/HSSFTests.java
src/testcases/org/apache/poi/hssf/model/TestFormulaParser.java

diff --git a/src/scratchpad/testcases/org/apache/poi/hssf/model/TestFormulaParserSP.java b/src/scratchpad/testcases/org/apache/poi/hssf/model/TestFormulaParserSP.java
new file mode 100644 (file)
index 0000000..aa73714
--- /dev/null
@@ -0,0 +1,83 @@
+
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+        
+package org.apache.poi.hssf.model;
+
+import junit.framework.TestCase;
+
+import org.apache.poi.hssf.record.formula.FuncVarPtg;
+import org.apache.poi.hssf.record.formula.NamePtg;
+import org.apache.poi.hssf.record.formula.Ptg;
+import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
+import org.apache.poi.hssf.usermodel.HSSFName;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+
+/**
+ * Test the low level formula parser functionality,
+ *  but using parts which need to use the
+ *  HSSFFormulaEvaluator, which is in scratchpad 
+ */
+public class TestFormulaParserSP extends TestCase {
+
+    public TestFormulaParserSP(String name) {
+        super(name);
+    }
+       
+       public void testWithNamedRange() throws Exception {
+               HSSFWorkbook workbook = new HSSFWorkbook();
+               FormulaParser fp;
+               Ptg[] ptgs;
+
+               HSSFSheet s = workbook.createSheet("Foo");
+               s.createRow(0).createCell((short)0).setCellValue(1.1);
+               s.createRow(1).createCell((short)0).setCellValue(2.3);
+               s.createRow(2).createCell((short)2).setCellValue(3.1);
+
+               HSSFName name = workbook.createName();
+               name.setNameName("testName");
+               name.setReference("A1:A2");
+
+               fp = HSSFFormulaEvaluator.getUnderlyingParser(workbook, "SUM(testName)");
+               fp.parse();
+               ptgs = fp.getRPNPtg();
+               assertTrue("two tokens expected, got "+ptgs.length,ptgs.length == 2);
+               assertEquals(NamePtg.class, ptgs[0].getClass());
+               assertEquals(FuncVarPtg.class, ptgs[1].getClass());
+
+               // Now make it a single cell
+               name.setReference("C3");
+
+               fp = HSSFFormulaEvaluator.getUnderlyingParser(workbook, "SUM(testName)");
+               fp.parse();
+               ptgs = fp.getRPNPtg();
+               assertTrue("two tokens expected, got "+ptgs.length,ptgs.length == 2);
+               assertEquals(NamePtg.class, ptgs[0].getClass());
+               assertEquals(FuncVarPtg.class, ptgs[1].getClass());
+               
+               // And make it non-contiguous
+               name.setReference("A1:A2,C3");
+               fp = HSSFFormulaEvaluator.getUnderlyingParser(workbook, "SUM(testName)");
+               fp.parse();
+               ptgs = fp.getRPNPtg();
+               assertTrue("two tokens expected, got "+ptgs.length,ptgs.length == 2);
+               assertEquals(NamePtg.class, ptgs[0].getClass());
+               assertEquals(FuncVarPtg.class, ptgs[1].getClass());
+       }
+
+}
index c26ba9beb35c76b2c54275dad6174097e1dbb7f4..1bc9df179844bcce13f6af0e2b0dfef8a92e11aa 100644 (file)
@@ -23,8 +23,8 @@ import junit.framework.TestSuite;
 
 import org.apache.poi.hssf.eventmodel.TestEventRecordFactory;
 import org.apache.poi.hssf.eventmodel.TestModelFactory;
-import org.apache.poi.hssf.model.TestFormulaParser;
 import org.apache.poi.hssf.model.TestDrawingManager;
+import org.apache.poi.hssf.model.TestFormulaParser;
 import org.apache.poi.hssf.model.TestSheet;
 import org.apache.poi.hssf.record.TestAreaFormatRecord;
 import org.apache.poi.hssf.record.TestAreaRecord;
@@ -91,6 +91,7 @@ import org.apache.poi.hssf.usermodel.TestFontDetails;
 import org.apache.poi.hssf.usermodel.TestFormulas;
 import org.apache.poi.hssf.usermodel.TestHSSFCell;
 import org.apache.poi.hssf.usermodel.TestHSSFClientAnchor;
+import org.apache.poi.hssf.usermodel.TestHSSFComment;
 import org.apache.poi.hssf.usermodel.TestHSSFDateUtil;
 import org.apache.poi.hssf.usermodel.TestHSSFHeaderFooter;
 import org.apache.poi.hssf.usermodel.TestHSSFPalette;
@@ -110,7 +111,6 @@ import org.apache.poi.hssf.util.TestCellReference;
 import org.apache.poi.hssf.util.TestRKUtil;
 import org.apache.poi.hssf.util.TestRangeAddress;
 import org.apache.poi.hssf.util.TestSheetReferences;
-import org.apache.poi.hssf.usermodel.TestHSSFComment;
 
 /**
  * Test Suite for running just HSSF tests.  Mostly
index 4a84209fb5c608e7046762f55d173608a9d43e36..9e6b53e9af9eb7fec82b701bee9b560c99ce70ca 100644 (file)
@@ -39,15 +39,15 @@ import org.apache.poi.hssf.record.formula.StringPtg;
 import org.apache.poi.hssf.record.formula.UnaryMinusPtg;
 import org.apache.poi.hssf.record.formula.UnaryPlusPtg;
 import org.apache.poi.hssf.usermodel.HSSFCell;
-import org.apache.poi.hssf.usermodel.HSSFFormulaEvaluator;
-import org.apache.poi.hssf.usermodel.HSSFName;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 
 /**
  * Test the low level formula parser functionality. High level tests are to 
- * be done via usermodel/HSSFCell.setFormulaValue() . 
+ *  be done via usermodel/HSSFCell.setFormulaValue() .
+ * Some tests are also done in scratchpad, if they need
+ *  HSSFFormulaEvaluator, which is there
  */
 public class TestFormulaParser extends TestCase {
 
@@ -352,47 +352,6 @@ public class TestFormulaParser extends TestCase {
                assertTrue("ptg0 contains exact value", ((StringPtg)ptg[0]).getValue().equals(value));
        }
        
-       public void testWithNamedRange() throws Exception {
-               HSSFWorkbook workbook = new HSSFWorkbook();
-               FormulaParser fp;
-               Ptg[] ptgs;
-
-               HSSFSheet s = workbook.createSheet("Foo");
-               s.createRow(0).createCell((short)0).setCellValue(1.1);
-               s.createRow(1).createCell((short)0).setCellValue(2.3);
-               s.createRow(2).createCell((short)2).setCellValue(3.1);
-
-               HSSFName name = workbook.createName();
-               name.setNameName("testName");
-               name.setReference("A1:A2");
-
-               fp = HSSFFormulaEvaluator.getUnderlyingParser(workbook, "SUM(testName)");
-               fp.parse();
-               ptgs = fp.getRPNPtg();
-               assertTrue("two tokens expected, got "+ptgs.length,ptgs.length == 2);
-               assertEquals(NamePtg.class, ptgs[0].getClass());
-               assertEquals(FuncVarPtg.class, ptgs[1].getClass());
-
-               // Now make it a single cell
-               name.setReference("C3");
-
-               fp = HSSFFormulaEvaluator.getUnderlyingParser(workbook, "SUM(testName)");
-               fp.parse();
-               ptgs = fp.getRPNPtg();
-               assertTrue("two tokens expected, got "+ptgs.length,ptgs.length == 2);
-               assertEquals(NamePtg.class, ptgs[0].getClass());
-               assertEquals(FuncVarPtg.class, ptgs[1].getClass());
-               
-               // And make it non-contiguous
-               name.setReference("A1:A2,C3");
-               fp = HSSFFormulaEvaluator.getUnderlyingParser(workbook, "SUM(testName)");
-               fp.parse();
-               ptgs = fp.getRPNPtg();
-               assertTrue("two tokens expected, got "+ptgs.length,ptgs.length == 2);
-               assertEquals(NamePtg.class, ptgs[0].getClass());
-               assertEquals(FuncVarPtg.class, ptgs[1].getClass());
-       }
-
        public void testLookupAndMatchFunctionArgs()
        {
                FormulaParser fp = new FormulaParser("lookup(A1, A3:A52, B3:B52)", null);