@Test
public void evaluateSimplePredicate(){

	FieldName age = FieldName.create("age");
	SimplePredicate simplePredicate = new SimplePredicate(age, SimplePredicate.Operator.IS_MISSING, null);
	assertEquals(Boolean.FALSE, evaluate(simplePredicate, age, 30));
	assertEquals(Boolean.TRUE, evaluate(simplePredicate, age, null));
	simplePredicate.setOperator(SimplePredicate.Operator.IS_NOT_MISSING);
	assertEquals(Boolean.TRUE, evaluate(simplePredicate, age, 30));
	assertEquals(Boolean.FALSE, evaluate(simplePredicate, age, null));
	simplePredicate.setValue("30");
	simplePredicate.setOperator(SimplePredicate.Operator.EQUAL);
	assertEquals(Boolean.TRUE, evaluate(simplePredicate, age, 30));
	assertEquals(null, evaluate(simplePredicate, age, null));
	simplePredicate.setOperator(SimplePredicate.Operator.NOT_EQUAL);
	assertEquals(Boolean.FALSE, evaluate(simplePredicate, age, 30));
	assertEquals(null, evaluate(simplePredicate, age, null));
	simplePredicate.setOperator(SimplePredicate.Operator.LESS_THAN);
	assertEquals(Boolean.FALSE, evaluate(simplePredicate, age, 30));
	simplePredicate.setOperator(SimplePredicate.Operator.LESS_OR_EQUAL);
	assertEquals(Boolean.TRUE, evaluate(simplePredicate, age, 30));
	simplePredicate.setOperator(SimplePredicate.Operator.GREATER_OR_EQUAL);
	assertEquals(Boolean.TRUE, evaluate(simplePredicate, age, 30));
	simplePredicate.setOperator(SimplePredicate.Operator.GREATER_THAN);
	assertEquals(Boolean.FALSE, evaluate(simplePredicate, age, 30));
}