@Test
public void testLogicalNegation() {

    String inputExpression = "not ( true )";
    BaseNode neg = parse( inputExpression );
    assertThat( neg, is( instanceOf( FunctionInvocationNode.class ) ) );
    assertThat( neg.getResultType(), is( BuiltInType.UNKNOWN ) );
    assertThat( neg.getText(), is( "not ( true )" ) );
    FunctionInvocationNode not = (FunctionInvocationNode) neg;
    assertThat( not.getParams().getElements().get( 0 ), is( instanceOf( BooleanNode.class ) ) );
    assertThat( not.getParams().getElements().get( 0 ).getResultType(), is( BuiltInType.BOOLEAN ) );
    assertThat( not.getParams().getElements().get( 0 ).getText(), is( "true" ) );
}