@Test
public void evaluateArithmeticFunctions(){

	assertEquals(4d, evaluate("+", 1d, 3d));
	assertEquals(-2d, evaluate("-", 1d, 3d));
	assertEquals(3d, evaluate("*", 1d, 3d));
	assertEquals((1d / 3d), evaluate("/", 1d, 3d));
	assertEquals(null, evaluate("+", 1d, null));
	assertEquals(null, evaluate("+", null, 1d));
	assertEquals(DataType.INTEGER, TypeUtil.getDataType(evaluate("*", 1, 1)));
	assertEquals(DataType.FLOAT, TypeUtil.getDataType(evaluate("*", 1f, 1f)));
	assertEquals(DataType.DOUBLE, TypeUtil.getDataType(evaluate("*", 1d, 1d)));
	assertEquals(DataType.INTEGER, TypeUtil.getDataType(evaluate("/", 1, 1)));
	assertEquals(DataType.FLOAT, TypeUtil.getDataType(evaluate("/", 1, 1f)));
	assertEquals(DataType.FLOAT, TypeUtil.getDataType(evaluate("/", 1f, 1f)));
	assertEquals(DataType.DOUBLE, TypeUtil.getDataType(evaluate("/", 1, 1d)));
	assertEquals(DataType.DOUBLE, TypeUtil.getDataType(evaluate("/", 1f, 1d)));
	assertEquals(DataType.DOUBLE, TypeUtil.getDataType(evaluate("/", 1d, 1d)));
}