77 lines
2.2 KiB
Java
77 lines
2.2 KiB
Java
![]() |
package org.apache.poi.hssf.model;
|
||
|
|
||
|
import junit.framework.TestCase;
|
||
|
|
||
|
import org.apache.poi.hssf.record.formula.*;
|
||
|
|
||
|
/**
|
||
|
* Test the low level formula parser functionality. High level tests are to
|
||
|
* be done via usermodel/HSSFCell.setFormulaValue() .
|
||
|
*/
|
||
|
public class TestFormulaParser extends TestCase {
|
||
|
|
||
|
public TestFormulaParser(String name) {
|
||
|
super(name);
|
||
|
}
|
||
|
public void setUp(){
|
||
|
|
||
|
}
|
||
|
|
||
|
public void tearDown() {
|
||
|
|
||
|
}
|
||
|
|
||
|
public void testSimpleFormula() {
|
||
|
FormulaParser fp = new FormulaParser("2+2;",null);
|
||
|
fp.parse();
|
||
|
Ptg[] ptgs = fp.getRPNPtg();
|
||
|
assertTrue("three tokens expected, got "+ptgs.length,ptgs.length == 3);
|
||
|
}
|
||
|
public void testFormulaWithSpace1() {
|
||
|
FormulaParser fp = new FormulaParser(" 2 + 2 ;",null);
|
||
|
fp.parse();
|
||
|
Ptg[] ptgs = fp.getRPNPtg();
|
||
|
assertTrue("three tokens expected, got "+ptgs.length,ptgs.length == 3);
|
||
|
assertTrue("",(ptgs[0] instanceof IntPtg));
|
||
|
assertTrue("",(ptgs[1] instanceof IntPtg));
|
||
|
assertTrue("",(ptgs[2] instanceof AddPtg));
|
||
|
|
||
|
}
|
||
|
|
||
|
public void testFormulaWithSpace2() {
|
||
|
Ptg[] ptgs;
|
||
|
FormulaParser fp;
|
||
|
fp = new FormulaParser("2+ sum( 3 , 4) ;",null);
|
||
|
fp.parse();
|
||
|
ptgs = fp.getRPNPtg();
|
||
|
assertTrue("five tokens expected, got "+ptgs.length,ptgs.length == 5);
|
||
|
}
|
||
|
|
||
|
public void testFormulaWithSpaceNRef() {
|
||
|
Ptg[] ptgs;
|
||
|
FormulaParser fp;
|
||
|
fp = new FormulaParser("sum( A2:A3 );",null);
|
||
|
fp.parse();
|
||
|
ptgs = fp.getRPNPtg();
|
||
|
assertTrue("two tokens expected, got "+ptgs.length,ptgs.length == 2);
|
||
|
}
|
||
|
|
||
|
public void testFormulaWithString() {
|
||
|
Ptg[] ptgs;
|
||
|
FormulaParser fp;
|
||
|
fp = new FormulaParser("\"hello\" & \"world\" ;",null);
|
||
|
fp.parse();
|
||
|
ptgs = fp.getRPNPtg();
|
||
|
assertTrue("three token expected, got " + ptgs.length, ptgs.length == 3);
|
||
|
}
|
||
|
|
||
|
|
||
|
public static void main(String [] args) {
|
||
|
System.out.println("Testing org.apache.poi.hssf.record.formula.FormulaParser");
|
||
|
junit.textui.TestRunner.run(TestFormulaParser.class);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|