/* * FormulaVariableMathTest.java * JUnit based test * * Created on July 31, 2006, 3:58 PM */ package com.accountingenhancements.formula; import com.accountingenhancements.common.SupportParameters; import junit.framework.*; import java.text.ParseException; /** * * @author lofgren */ public class FormulaVariableMathTest extends TestCase { public FormulaVariableMathTest(String testName) { super(testName); } protected void setUp() throws Exception { } protected void tearDown() throws Exception { } public static Test suite() { TestSuite suite = new TestSuite(FormulaVariableMathTest.class); return suite; } /** * Test of solveUnaryOfVariable method, of class com.accountingenhancements.formula.FormulaVariableMath. */ public void testSolveUnaryOfVariable() throws Exception { System.out.println("solveUnaryOfVariable"); int unaryOperator = FormulaVariable.TYPE_OPERATOR_UNARY_NOT; FormulaVariable variable; FormulaVariableList variableList = null; SupportParameters supportParameters = null; FormulaFunctionList functionList = null; int resolveEverythingAboveLevel = 0; StringBuilder tmpString=new StringBuilder(); boolean error; variable = new FormulaVariable("",false,0,0); FormulaVariable result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_BOOLEAN); assertTrue("Exp: Was: ",result.getBoolean()); variable=new FormulaVariable("",true,0,0); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_BOOLEAN); assertFalse("Exp: Was: ",result.getBoolean()); variable = new FormulaVariable("",(long)0,0,0); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_BOOLEAN); assertTrue("Exp: Was: ",result.getBoolean()); variable=new FormulaVariable("",(long)7,0,0); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_BOOLEAN); assertFalse("Exp: Was: ",result.getBoolean()); variable = new FormulaVariable("",(double).005,1,0); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_BOOLEAN); assertTrue("Exp: Was: ",result.getBoolean()); variable=new FormulaVariable("",(double)2.3,0,0); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_BOOLEAN); assertFalse("Exp: Was: ",result.getBoolean()); variable = new FormulaVariable("","",0); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_BOOLEAN); assertTrue("Exp: Was: ",result.getBoolean()); variable=new FormulaVariable("","a",0,false); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_BOOLEAN); assertFalse("Exp: Was: ",result.getBoolean()); unaryOperator=FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT; variable = new FormulaVariable("",false,0,0); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_BOOLEAN); assertTrue("Exp: Was: ",result.getBoolean()); variable=new FormulaVariable("",true,0,0); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_BOOLEAN); assertFalse("Exp: Was: ",result.getBoolean()); variable = new FormulaVariable("",(long)440022,0); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_LONG); assertEquals((long)-440023,(long)result.getLong()); variable = new FormulaVariable("","ABCD",0,false); result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertTrue("Exp: Was: <"+FormulaVariable.TYPE_TO_STRING_ARRAY[result.getVariableType()]+">",result.getVariableType()==FormulaVariable.TYPE_STRING); for(int i=0;i Was: <"+tmpString.toString()+">",tmpString.toString().equalsIgnoreCase("BEBDBCBB")); variable=new FormulaVariable("",new java.util.Date(0),0); error=false; try{ result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); variable=new FormulaVariable("",(double)2.34,0); error=false; try{ result = FormulaVariableMath.solveUnaryOfVariable(unaryOperator, variable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); } /** *Test of applyOperatorToTwoVariables(boolean, int, boolean) method, of class com.accountingenhancements.formula.FormulaVariableMath. */ public void testApplyOperatorToTwoVariables_boolean_int_boolean() throws Exception{ System.out.println("applyOperatorToTwoVariables(boolean, int, boolean"); boolean left,right; int operator; boolean result; boolean error; operator=FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT; left=false; right=false; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_UNARY_NOT; left=false; right=false; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_EQUALS; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); operator=FormulaVariable.TYPE_OPERATOR_NOT_EQUAL; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN_OR_EQUAL; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN_OR_EQUAL; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_OR; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_AND; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_MULTIPLY; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_DIVIDE; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_MODULUS; left=false; right=false; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_AND; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_BIT_OR; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_BIT_XOR; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_PLUS; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_MINUS; left=true; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=true; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(true,result); left=false; right=true; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); left=false; right=false; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(false,result); } /** *Test of applyOperatorToTwoVariables(long, int, long) method, of class com.accountingenhancements.formula.FormulaVariableMath. */ public void testApplyOperatorToTwoVariables_long_int_long() throws Exception{ System.out.println("applyOperatorToTwoVariables(long, int, long"); long left,right; int operator; long result; boolean error; operator=FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT; left=0; right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_UNARY_NOT; left=0; right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_EQUALS; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); operator=FormulaVariable.TYPE_OPERATOR_NOT_EQUAL; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN_OR_EQUAL; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN_OR_EQUAL; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); operator=FormulaVariable.TYPE_OPERATOR_OR; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); operator=FormulaVariable.TYPE_OPERATOR_AND; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); operator=FormulaVariable.TYPE_OPERATOR_MULTIPLY; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(9L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); operator=FormulaVariable.TYPE_OPERATOR_DIVIDE; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=9; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3L,result); left=3; right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_MODULUS; left=4; right=4; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=6; right=2; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=11; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(2L,result); operator=FormulaVariable.TYPE_OPERATOR_BIT_AND; left=3; right=6; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(2L,result); left=9; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=8; right=2; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); operator=FormulaVariable.TYPE_OPERATOR_BIT_OR; left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3L,result); left=6; right=8; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(14L,result); left=6; right=4; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(6L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); operator=FormulaVariable.TYPE_OPERATOR_BIT_XOR; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3L,result); left=2; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); operator=FormulaVariable.TYPE_OPERATOR_PLUS; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(6L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); operator=FormulaVariable.TYPE_OPERATOR_MINUS; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3L,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(-3L,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0L,result); } /** *Test of applyOperatorToTwoVariables(Date, int, Date) method, of class com.accountingenhancements.formula.FormulaVariableMath. */ public void testApplyOperatorToTwoVariables_Date_int_Date() throws Exception{ System.out.println("applyOperatorToTwoVariables(Date, int, Date"); java.util.Date left,right; int operator; long result; boolean error; operator=FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_UNARY_NOT; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_EQUALS; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_NOT_EQUAL; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN_OR_EQUAL; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN_OR_EQUAL; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_OR; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_AND; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_MULTIPLY; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_DIVIDE; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_MODULUS; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_AND; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_OR; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_XOR; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_PLUS; left=new java.util.Date(0L); right=new java.util.Date(0L); error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_MINUS; java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("MM/dd/yyyy"); left = sdf.parse("02/20/2004"); right = sdf.parse("03/02/2004"); result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(-11L,result); left = sdf.parse("06/20/2006"); right = sdf.parse("05/02/2006"); result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(49L,result); } /** *Test of applyOperatorToTwoVariables(Date, int, Long) method, of class com.accountingenhancements.formula.FormulaVariableMath. */ public void testApplyOperatorToTwoVariables_Date_int_Long() throws Exception{ System.out.println("applyOperatorToTwoVariables(Date, int, Long"); java.util.Date left; long right; int operator; java.util.Date result; boolean error; java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("MM/dd/yyyy"); operator=FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_UNARY_NOT; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_EQUALS; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_NOT_EQUAL; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN_OR_EQUAL; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN_OR_EQUAL; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_OR; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_AND; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_MULTIPLY; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_DIVIDE; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_MODULUS; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_AND; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_OR; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_XOR; left=new java.util.Date(0L); right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_PLUS; left = sdf.parse("03/02/2004"); right=-11L; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertTrue("Was: <"+sdf.format(result)+"> Expected: <02/20/2004>",sdf.format(result).equals("02/20/2004")); left = sdf.parse("02/20/2004"); right=+11L; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertTrue("Was: <"+sdf.format(result)+"> Expected: <03/02/2004>",sdf.format(result).equals("03/02/2004")); operator=FormulaVariable.TYPE_OPERATOR_MINUS; left = sdf.parse("03/02/2004"); right=11L; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertTrue("Was: <"+sdf.format(result)+"> Expected: <02/20/2004>",sdf.format(result).equals("02/20/2004")); left = sdf.parse("02/20/2004"); right=-11L; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertTrue("Was: <"+sdf.format(result)+"> Expected: <03/02/2004>",sdf.format(result).equals("03/02/2004")); } /** *Test of applyOperatorToTwoVariables(double, int, double) method, of class com.accountingenhancements.formula.FormulaVariableMath. */ public void testApplyOperatorToTwoVariables_double_int_double() throws Exception{ System.out.println("applyOperatorToTwoVariables(double, int, double"); double left,right; int operator; double result; boolean error; operator=FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT; left=0; right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_UNARY_NOT; left=0; right=0; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_EQUALS; left=3.012; right=3.012; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); operator=FormulaVariable.TYPE_OPERATOR_NOT_EQUAL; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN_OR_EQUAL; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN_OR_EQUAL; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_OR; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_AND; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_MULTIPLY; left=3.3; right=3.3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1089L,java.lang.Math.round(result*100)); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_DIVIDE; left=3.3; right=3.3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=9; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(300L,java.lang.Math.round(result*100)); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertTrue("Was: <"+result+"> expected: ",Double.isInfinite(result)); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=0; assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_MODULUS; left=4; right=4; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=6.0; right=2.0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=11; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(2.0,result); operator=FormulaVariable.TYPE_OPERATOR_BIT_AND; left=3; right=6; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(2.0,result); left=9; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=8; right=2; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_BIT_OR; left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3.0,result); left=6; right=8; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(14.0,result); left=6; right=4; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(6.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_BIT_XOR; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3.0,result); left=2; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(1.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_PLUS; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(6.0,result); left=2.25; right=3.08; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(533L,java.lang.Math.round(result*100)); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); operator=FormulaVariable.TYPE_OPERATOR_MINUS; left=3; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); left=3; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(3.0,result); left=0; right=3; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(-3.0,result); left=0; right=0; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertEquals(0.0,result); } /** *Test of applyOperatorToTwoVariables(String, int, String) method, of class com.accountingenhancements.formula.FormulaVariableMath. */ public void testApplyOperatorToTwoVariables_String_int_String() throws Exception{ System.out.println("applyOperatorToTwoVariables(String, int, String"); String left,right; int operator; String result; boolean error; operator=FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_UNARY_NOT; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_EQUALS; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_NOT_EQUAL; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN_OR_EQUAL; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN_OR_EQUAL; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_OR; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_AND; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_MULTIPLY; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_DIVIDE; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_MODULUS; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_AND; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_OR; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_XOR; left="a"; right="a"; error=false; try{ result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); }catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_PLUS; left="a"; right="heLLo"; result=FormulaVariableMath.applyOperatorToTwoVariables(left,operator,right); assertTrue("Was: <"+result+"> Expected: Expected: ",result.getString().equals("Hi there test")); leftVariable = new FormulaVariable("","Hi there ",0,false); rightVariable = new FormulaVariable("",2L,0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_STRING,result.getVariableType()); assertTrue("Was: <"+result.getString()+"> Expected: ",result.getString().equals("Hi there 2")); leftVariable = new FormulaVariable("","Hi there ",0,false); rightVariable = new FormulaVariable("",false,0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_STRING,result.getVariableType()); assertTrue("Was: <"+result.getString()+"> Expected: ",result.getString().equals("Hi there false")); leftVariable = new FormulaVariable("","Hi there ",0,false); rightVariable = new FormulaVariable("",2.0344,2,0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_STRING,result.getVariableType()); assertTrue("Was: <"+result.getString()+"> Expected: ",result.getString().equals("Hi there 2.03")); leftVariable = new FormulaVariable("","Hi there ",0,false); rightVariable = new FormulaVariable("",sdf.parse("04/12/2006"),0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_STRING,result.getVariableType()); assertTrue("Was: <"+result.getString()+"> Expected: ",result.getString().equals("Hi there 04/12/2006")); leftVariable = new FormulaVariable("",2L,0); rightVariable = new FormulaVariable(""," Hi there",0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_STRING,result.getVariableType()); assertTrue("Was: <"+result.getString()+"> Expected: <2 Hi there>",result.getString().equals("2 Hi there")); leftVariable = new FormulaVariable("",false,0); rightVariable = new FormulaVariable(""," Hi there",0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_STRING,result.getVariableType()); assertTrue("Was: <"+result.getString()+"> Expected: ",result.getString().equals("false Hi there")); leftVariable = new FormulaVariable("",2.0344,2,0); rightVariable = new FormulaVariable(""," Hi there",0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_STRING,result.getVariableType()); assertTrue("Was: <"+result.getString()+"> Expected: <2.03 Hi there>",result.getString().equals("2.03 Hi there")); leftVariable = new FormulaVariable("",sdf.parse("04/12/2006"),0); rightVariable = new FormulaVariable(""," Hi there",0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_STRING,result.getVariableType()); assertTrue("Was: <"+result.getString()+"> Expected: <04/12/2006 Hi there>",result.getString().equals("04/12/2006 Hi there")); operator=FormulaVariable.TYPE_OPERATOR_EQUALS; leftVariable = new FormulaVariable("","hi",0,false); rightVariable = new FormulaVariable(""," Hi there",0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertFalse(result.getBoolean()); operator=FormulaVariable.TYPE_OPERATOR_EQUALS; leftVariable = new FormulaVariable("","Hi there",0,false); rightVariable = new FormulaVariable("","Hi there",0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertTrue(result.getBoolean()); //boolean to boolean operator = FormulaVariable.TYPE_OPERATOR_AND; leftVariable = new FormulaVariable("",false,0); rightVariable = new FormulaVariable("",true,0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(false,result.getBoolean()); //Test Unary Operators while we are doing boolean to boolean operator = FormulaVariable.TYPE_OPERATOR_AND; leftVariable = new FormulaVariable("",false,0); rightVariable = new FormulaVariable("",true,0); result = FormulaVariableMath.applyOperatorToTwoVariables(FormulaVariable.TYPE_OPERATOR_UNARY_NOT,leftVariable, operator, null, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(true,result.getBoolean()); leftVariable = new FormulaVariable("",true,0); rightVariable = new FormulaVariable("",true,0); result = FormulaVariableMath.applyOperatorToTwoVariables(null,leftVariable, operator, FormulaVariable.TYPE_OPERATOR_UNARY_NOT, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(false,result.getBoolean()); leftVariable = new FormulaVariable("",true,0); rightVariable = new FormulaVariable("",false,0); result = FormulaVariableMath.applyOperatorToTwoVariables(null,leftVariable, operator, FormulaVariable.TYPE_OPERATOR_UNARY_NOT, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(true,result.getBoolean()); leftVariable = new FormulaVariable("",false,0); rightVariable = new FormulaVariable("",false,0); result = FormulaVariableMath.applyOperatorToTwoVariables(FormulaVariable.TYPE_OPERATOR_UNARY_NOT,leftVariable, operator, FormulaVariable.TYPE_OPERATOR_UNARY_NOT, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(true,result.getBoolean()); leftVariable = new FormulaVariable("",false,0); rightVariable = new FormulaVariable("",false,0); result = FormulaVariableMath.applyOperatorToTwoVariables(FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT,leftVariable, operator, FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(true,result.getBoolean()); leftVariable = new FormulaVariable("",true,0); rightVariable = new FormulaVariable("",true,0); result = FormulaVariableMath.applyOperatorToTwoVariables(FormulaVariable.TYPE_OPERATOR_PLUS,leftVariable, operator, FormulaVariable.TYPE_OPERATOR_MULTIPLY, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(true,result.getBoolean()); //The invalid UNARY operators should have been ignored with no error. //Date to Date or date-like string to date-like string or any combination operator = FormulaVariable.TYPE_OPERATOR_EQUALS; leftVariable = new FormulaVariable("",sdf.parse("04/12/2006"),0); rightVariable = new FormulaVariable("",sdf.parse("05/12/2006"),0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(false,result.getBoolean()); operator = FormulaVariable.TYPE_OPERATOR_LESS_THAN; leftVariable = new FormulaVariable("",sdf.parse("04/12/2006"),0); rightVariable = new FormulaVariable("",sdf.parse("05/12/2006"),0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(true,result.getBoolean()); operator = FormulaVariable.TYPE_OPERATOR_MINUS; leftVariable = new FormulaVariable("",sdf.parse("04/12/2006"),0); rightVariable = new FormulaVariable("",sdf.parse("05/12/2006"),0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_LONG,result.getVariableType()); assertEquals(-30L,(long)result.getLong()); operator = FormulaVariable.TYPE_OPERATOR_LESS_THAN; leftVariable = new FormulaVariable("",sdf.parse("04/12/2006"),0); rightVariable = new FormulaVariable("","05/12/2006",FormulaVariable.TYPE_STRING,0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(true,result.getBoolean()); operator = FormulaVariable.TYPE_OPERATOR_LESS_THAN; leftVariable = new FormulaVariable("",sdf.parse("05/12/2006"),0); rightVariable = new FormulaVariable("","04/12/2006",FormulaVariable.TYPE_STRING,0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(false,result.getBoolean()); operator = FormulaVariable.TYPE_OPERATOR_LESS_THAN; leftVariable = new FormulaVariable("","05/12/2006",FormulaVariable.TYPE_STRING,0,false); rightVariable = new FormulaVariable("",sdf.parse("04/12/2006"),0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(false,result.getBoolean()); operator = FormulaVariable.TYPE_OPERATOR_LESS_THAN; leftVariable = new FormulaVariable("","04/12/2006",FormulaVariable.TYPE_STRING,0,false); rightVariable = new FormulaVariable("",sdf.parse("05/12/2006"),0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(true,result.getBoolean()); operator = FormulaVariable.TYPE_OPERATOR_LESS_THAN; leftVariable = new FormulaVariable("","05/12/2006",FormulaVariable.TYPE_STRING,0,false); rightVariable = new FormulaVariable("","04/12/2006",FormulaVariable.TYPE_STRING,0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(false,result.getBoolean()); operator = FormulaVariable.TYPE_OPERATOR_LESS_THAN; leftVariable = new FormulaVariable("","04/12/2006",FormulaVariable.TYPE_STRING,0,false); rightVariable = new FormulaVariable("","05/12/2006",FormulaVariable.TYPE_STRING,0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_BOOLEAN,result.getVariableType()); assertEquals(true,result.getBoolean()); operator = FormulaVariable.TYPE_OPERATOR_MINUS; leftVariable = new FormulaVariable("","05/12/2006",FormulaVariable.TYPE_STRING,0,false); rightVariable = new FormulaVariable("","04/12/2006",FormulaVariable.TYPE_STRING,0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_LONG,result.getVariableType()); assertEquals(30,result.getLong().intValue()); operator = FormulaVariable.TYPE_OPERATOR_MINUS; leftVariable = new FormulaVariable("","01/12/2007",FormulaVariable.TYPE_STRING,0,false); rightVariable = new FormulaVariable("","01/12/2006",FormulaVariable.TYPE_STRING,0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_LONG,result.getVariableType()); assertEquals(365,result.getLong().intValue()); operator = FormulaVariable.TYPE_OPERATOR_MINUS; leftVariable = new FormulaVariable("","05/12/2006",FormulaVariable.TYPE_STRING,0,false); rightVariable = new FormulaVariable("","05/12/2006",FormulaVariable.TYPE_STRING,0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_LONG,result.getVariableType()); assertEquals(0,result.getLong().intValue()); operator = FormulaVariable.TYPE_OPERATOR_MINUS; leftVariable = new FormulaVariable("","08/14/2006",FormulaVariable.TYPE_STRING,0,false); rightVariable = new FormulaVariable("","1/3/1",FormulaVariable.TYPE_STRING,0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_LONG,result.getVariableType()); assertEquals(2048,result.getLong().intValue()); operator = FormulaVariable.TYPE_OPERATOR_MINUS; leftVariable = new FormulaVariable("","08/14/2006",FormulaVariable.TYPE_STRING,0,false); rightVariable = new FormulaVariable("","1/4/1",FormulaVariable.TYPE_STRING,0,false); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_LONG,result.getVariableType()); assertEquals(2047,result.getLong().intValue()); //Date to long or double operator = FormulaVariable.TYPE_OPERATOR_PLUS; leftVariable=new FormulaVariable("",sdf.parse("04/12/2006"),0); rightVariable = new FormulaVariable("",30L,0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_DATE,result.getVariableType()); assertTrue("Was: <"+result.getString()+"> Expected: <05/12/2006>",result.getString().equals("05/12/2006")); leftVariable=new FormulaVariable("",sdf.parse("04/12/2006"),0); rightVariable = new FormulaVariable("",31.3,2,0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_DATE,result.getVariableType()); assertTrue("Was: <"+result.getString()+"> Expected: <05/13/2006>",result.getString().equals("05/13/2006")); //double to double, double to long, long to double operator = FormulaVariable.TYPE_OPERATOR_PLUS; leftVariable = new FormulaVariable("",31.325,3,0); rightVariable = new FormulaVariable("",12.01,2,0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_DOUBLE,result.getVariableType()); assertEquals(2,result.getScale()); assertTrue("Was: <"+result.getString()+"> Expected: <43.34>",result.getString().equals("43.34")); operator = FormulaVariable.TYPE_OPERATOR_MULTIPLY; leftVariable = new FormulaVariable("",31.325,3,0); rightVariable = new FormulaVariable("",12.01,2,0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_DOUBLE,result.getVariableType()); assertEquals(1,result.getScale()); assertTrue("Was: <"+result.getString()+"> Expected: <43.34>",result.getString().equals("376.2")); operator = FormulaVariable.TYPE_OPERATOR_PLUS; leftVariable = new FormulaVariable("",31.32,2,0); rightVariable = new FormulaVariable("",10L,0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_DOUBLE,result.getVariableType()); assertEquals(2,result.getScale()); assertTrue("Was: <"+result.getString()+"> Expected: <41.32>",result.getString().equals("41.32")); operator = FormulaVariable.TYPE_OPERATOR_PLUS; leftVariable = new FormulaVariable("",10L,0); rightVariable = new FormulaVariable("",31.32,2,0); result = FormulaVariableMath.applyOperatorToTwoVariables(leftVariable, operator, rightVariable, variableList, supportParameters, functionList, resolveEverythingAboveLevel); assertEquals(FormulaVariable.TYPE_DOUBLE,result.getVariableType()); assertEquals(2,result.getScale()); assertTrue("Was: <"+result.getString()+"> Expected: <41.32>",result.getString().equals("41.32")); } /** * Test of applyOperatorToCompareDates method, of class com.accountingenhancements.formula.FormulaVariableMath. */ public void testApplyOperatorToCompareDates() { System.out.println("applyOperatorToCompareDates"); java.util.Date left = null; int operator = 0; java.util.Date right = null; boolean result; boolean error; left=new java.util.Date(1151064000000L); right=new java.util.Date(1151236800000L); error=false; operator=FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT; try{ result=FormulaVariableMath.applyOperatorToCompareDates(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); error=false; operator=FormulaVariable.TYPE_OPERATOR_UNARY_NOT; try{ result=FormulaVariableMath.applyOperatorToCompareDates(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_EQUALS; result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(false, result); result = FormulaVariableMath.applyOperatorToCompareDates(right, operator, left); assertEquals(false, result); left=new java.util.Date(1151236800200L); //Setting to same day but different time, should report equals. result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(true, result); left=new java.util.Date(1151064000000L); right=new java.util.Date(1151236800000L); operator=FormulaVariable.TYPE_OPERATOR_NOT_EQUAL; result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(true, result); result = FormulaVariableMath.applyOperatorToCompareDates(right, operator, left); assertEquals(true, result); left=new java.util.Date(1151236800200L); result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(false, result); left=new java.util.Date(1151064000000L); right=new java.util.Date(1151236800000L); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN; result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(true, result); result = FormulaVariableMath.applyOperatorToCompareDates(right, operator, left); assertEquals(false, result); left=new java.util.Date(1151236800000L); result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(false, result); left=new java.util.Date(1151064000000L); right=new java.util.Date(1151236800000L); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN_OR_EQUAL; result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(true, result); result = FormulaVariableMath.applyOperatorToCompareDates(right, operator, left); assertEquals(false, result); left=new java.util.Date(1151236800000L); result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(true, result); left=new java.util.Date(1151064000000L); right=new java.util.Date(1151236800000L); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN; result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(false, result); result = FormulaVariableMath.applyOperatorToCompareDates(right, operator, left); assertEquals(true, result); left=new java.util.Date(1151236800000L); result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(false, result); left=new java.util.Date(1151064000000L); right=new java.util.Date(1151236800000L); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN_OR_EQUAL; result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(false, result); result = FormulaVariableMath.applyOperatorToCompareDates(right, operator, left); assertEquals(true, result); left=new java.util.Date(1151236800000L); result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(true, result); operator=FormulaVariable.TYPE_OPERATOR_OR; result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(true, result); result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, (java.util.Date)null); assertEquals(true, result); result = FormulaVariableMath.applyOperatorToCompareDates((java.util.Date)null, operator, right); assertEquals(true, result); result = FormulaVariableMath.applyOperatorToCompareDates((java.util.Date)null, operator, (java.util.Date)null); assertEquals(false, result); operator=FormulaVariable.TYPE_OPERATOR_AND; result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, right); assertEquals(true, result); result = FormulaVariableMath.applyOperatorToCompareDates(left, operator, (java.util.Date)null); assertEquals(false, result); result = FormulaVariableMath.applyOperatorToCompareDates((java.util.Date)null, operator, right); assertEquals(false, result); error=false; operator=FormulaVariable.TYPE_OPERATOR_MULTIPLY; try{ result=FormulaVariableMath.applyOperatorToCompareDates(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); error=false; operator=FormulaVariable.TYPE_OPERATOR_DIVIDE; try{ result=FormulaVariableMath.applyOperatorToCompareDates(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); error=false; operator=FormulaVariable.TYPE_OPERATOR_MODULUS; try{ result=FormulaVariableMath.applyOperatorToCompareDates(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); error=false; operator=FormulaVariable.TYPE_OPERATOR_BIT_AND; try{ result=FormulaVariableMath.applyOperatorToCompareDates(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); error=false; operator=FormulaVariable.TYPE_OPERATOR_BIT_OR; try{ result=FormulaVariableMath.applyOperatorToCompareDates(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); error=false; operator=FormulaVariable.TYPE_OPERATOR_BIT_XOR; try{ result=FormulaVariableMath.applyOperatorToCompareDates(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); error=false; operator=FormulaVariable.TYPE_OPERATOR_PLUS; try{ result=FormulaVariableMath.applyOperatorToCompareDates(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); error=false; operator=FormulaVariable.TYPE_OPERATOR_MINUS; try{ result=FormulaVariableMath.applyOperatorToCompareDates(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); } /** * Test of applyOperatorToCompareStrings method, of class com.accountingenhancements.formula.FormulaVariableMath. */ public void testApplyOperatorToCompareStrings() { System.out.println("applyOperatorToCompareStrings"); String left; int operator = 0; String right; boolean error; boolean result; left="AAAA"; right="AAAB"; operator=FormulaVariable.TYPE_OPERATOR_UNARY_BIT_NOT; error=false; try{ result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_UNARY_NOT; error=false; try{ result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_EQUALS; left="AAAA"; right="AAAB"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(false,result); right="aaaa"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(false,result); right="AAAA"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(true,result); operator=FormulaVariable.TYPE_OPERATOR_NOT_EQUAL; left="AAAA"; right="AAAB"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(true,result); right="aaaa"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(true,result); right="AAAA"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN_OR_EQUAL; left="AAAA"; right="AAAB"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(true,result); result=FormulaVariableMath.applyOperatorToCompareStrings(right,operator,left); assertEquals(false,result); right="AAAA"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(true,result); operator=FormulaVariable.TYPE_OPERATOR_LESS_THAN; left="AAAA"; right="AAAB"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(true,result); result=FormulaVariableMath.applyOperatorToCompareStrings(right,operator,left); assertEquals(false,result); right="AAAA"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN_OR_EQUAL; left="AAAA"; right="AAAB"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(false,result); result=FormulaVariableMath.applyOperatorToCompareStrings(right,operator,left); assertEquals(true,result); right="AAAA"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(true,result); operator=FormulaVariable.TYPE_OPERATOR_GREATER_THAN; left="AAAA"; right="AAAB"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(false,result); result=FormulaVariableMath.applyOperatorToCompareStrings(right,operator,left); assertEquals(true,result); right="AAAA"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_OR; left="A"; right=null; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(true,result); result=FormulaVariableMath.applyOperatorToCompareStrings(right,operator,left); assertEquals(true,result); result=FormulaVariableMath.applyOperatorToCompareStrings(null,operator,null); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_AND; left="A"; right="BCD"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(true,result); left="A"; right=null; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(false,result); left=null; right="ABc"; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(false,result); left=null; right=null; result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); assertEquals(false,result); operator=FormulaVariable.TYPE_OPERATOR_MULTIPLY; error=false; try{ result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_DIVIDE; error=false; try{ result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_MODULUS; error=false; try{ result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_AND; error=false; try{ result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_OR; error=false; try{ result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_BIT_XOR; error=false; try{ result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_PLUS; error=false; try{ result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); operator=FormulaVariable.TYPE_OPERATOR_MINUS; error=false; try{ result=FormulaVariableMath.applyOperatorToCompareStrings(left,operator,right); } catch(java.lang.ArithmeticException ex){error=true;} assertEquals(true,error); } }