use of com.dexels.navajo.expression.api.FunctionInterface in project navajo by Dexels.
the class TestCompiledStringExpression method testAddLongAndString.
@Test
public void testAddLongAndString() {
FunctionInterface giveLongFunction = new GiveLongTestFunction();
FunctionDefinition fd = new FunctionDefinition(giveLongFunction.getClass().getName(), "description", "input", "result");
FunctionFactoryFactory.getInstance().addExplicitFunctionDefinition("ToLong", fd);
Operand result = Expression.evaluate("ToLong(15) + 'bla'", null, null, null);
assertEquals("15bla", result.value);
}
use of com.dexels.navajo.expression.api.FunctionInterface in project navajo by Dexels.
the class TestCompiledStringExpression method testAddStringAndLong.
@Test
public void testAddStringAndLong() {
FunctionInterface giveLongFunction = new GiveLongTestFunction();
FunctionDefinition fd = new FunctionDefinition(giveLongFunction.getClass().getName(), "description", "input", "result");
FunctionFactoryFactory.getInstance().addExplicitFunctionDefinition("ToLong", fd);
Operand result = Expression.evaluate("'bla' + ToLong(10)", null, null, null);
assertEquals("bla10", result.value);
}
use of com.dexels.navajo.expression.api.FunctionInterface in project navajo by Dexels.
the class TestCompiledStringExpression method testSubtractLongAndString.
@Test(expected = TMLExpressionException.class)
public void testSubtractLongAndString() {
FunctionInterface giveLongFunction = new GiveLongTestFunction();
FunctionDefinition fd = new FunctionDefinition(giveLongFunction.getClass().getName(), "description", "input", "result");
FunctionFactoryFactory.getInstance().addExplicitFunctionDefinition("ToLong", fd);
Expression.evaluate("ToLong(15) - 'bla'", null, null, null);
}
use of com.dexels.navajo.expression.api.FunctionInterface in project navajo by Dexels.
the class TestCompiledLongExpression method testAddWithLongs.
@Test
public void testAddWithLongs() {
FunctionInterface helperFunction = new GiveLongTestFunction();
FunctionDefinition fd = new FunctionDefinition(helperFunction.getClass().getName(), "description", "input", "result");
FunctionFactoryFactory.getInstance().addExplicitFunctionDefinition("ToLong", fd);
Operand result;
result = Expression.evaluate("ToLong(1) + ToLong(1)", null, null, null);
Assert.assertEquals(2L, (long) result.value);
result = Expression.evaluate("1 + ToLong(1)", null, null, null);
Assert.assertEquals(2L, (long) result.value);
result = Expression.evaluate("ToLong(1) + 1", null, null, null);
Assert.assertEquals(2L, (long) result.value);
result = Expression.evaluate("1.0 + ToLong(1)", null, null, null);
Assert.assertEquals(2.0, (double) result.value, 0.000001);
result = Expression.evaluate("ToLong(1) + 1.0", null, null, null);
Assert.assertEquals(2.0, (double) result.value, 0.000001);
}
use of com.dexels.navajo.expression.api.FunctionInterface in project navajo by Dexels.
the class TestCompiledLongExpression method testDivideWithLongs.
@Test
public void testDivideWithLongs() {
FunctionInterface helperFunction = new GiveLongTestFunction();
FunctionDefinition fd = new FunctionDefinition(helperFunction.getClass().getName(), "description", "input", "result");
FunctionFactoryFactory.getInstance().addExplicitFunctionDefinition("ToLong", fd);
Operand result;
result = Expression.evaluate("ToLong(8) / ToLong(2)", null, null, null);
Assert.assertEquals(4.0, (double) result.value, 0.000001);
result = Expression.evaluate("8 / ToLong(2)", null, null, null);
Assert.assertEquals(4.0, (double) result.value, 0.000001);
result = Expression.evaluate("ToLong(8) / 2", null, null, null);
Assert.assertEquals(4.0, (double) result.value, 0.000001);
result = Expression.evaluate("8.0 / ToLong(2)", null, null, null);
Assert.assertEquals(4.0, (double) result.value, 0.000001);
result = Expression.evaluate("ToLong(8) / 2.0", null, null, null);
Assert.assertEquals(4.0, (double) result.value, 0.000001);
}
Aggregations