@Test
public void evaluateMathFunctions(){

	assertEquals(DataType.DOUBLE, TypeUtil.getDataType(evaluate("log10", 1)));
	assertEquals(DataType.FLOAT, TypeUtil.getDataType(evaluate("log10", 1f)));
	assertEquals(DataType.DOUBLE, TypeUtil.getDataType(evaluate("ln", 1)));
	assertEquals(DataType.FLOAT, TypeUtil.getDataType(evaluate("ln", 1f)));
	assertEquals(DataType.DOUBLE, TypeUtil.getDataType(evaluate("exp", 1)));
	assertEquals(DataType.FLOAT, TypeUtil.getDataType(evaluate("exp", 1f)));
	assertEquals(DataType.DOUBLE, TypeUtil.getDataType(evaluate("sqrt", 1)));
	assertEquals(DataType.FLOAT, TypeUtil.getDataType(evaluate("sqrt", 1f)));
	assertEquals(1, evaluate("abs", -1));
	assertEquals(1f, evaluate("abs", -1f));
	assertEquals(1d, evaluate("abs", -1d));
	assertEquals(DataType.INTEGER, TypeUtil.getDataType(evaluate("pow", 1, 1)));
	assertEquals(DataType.FLOAT, TypeUtil.getDataType(evaluate("pow", 1f, 1f)));
	assertEquals(0, evaluate("threshold", 2, 3));
	assertEquals(0, evaluate("threshold", 3, 3));
	assertEquals(1, evaluate("threshold", 3, 2));
	assertEquals(0f, evaluate("threshold", 2f, 3f));
	assertEquals(0f, evaluate("threshold", 3f, 3f));
	assertEquals(1f, evaluate("threshold", 3f, 2f));
	assertEquals(1, evaluate("floor", 1));
	assertEquals(1, evaluate("ceil", 1));
	assertEquals(1f, evaluate("floor", 1.99f));
	assertEquals(2f, evaluate("round", 1.99f));
	assertEquals(1f, evaluate("ceil", 0.01f));
	assertEquals(0f, evaluate("round", 0.01f));
}