@Test
public void testVariableWithInKeyword() {

    String inputExpression = "{ a variable with in keyword : 10, "
            + " another variable : a variable with in keyword + 20, "
            + " another in variable : an external in variable / 2 }";
    BaseNode ctxbase = parse( inputExpression, mapOf(entry("an external in variable", BuiltInType.NUMBER)) );
    assertThat( ctxbase, is( instanceOf( ContextNode.class ) ) );
    assertThat( ctxbase.getText(), is( inputExpression ) );
    ContextNode ctx = (ContextNode) ctxbase;
    assertThat( ctx.getEntries().size(), is( 3 ) );
    ContextEntryNode entry = ctx.getEntries().get( 0 );
    assertThat( entry.getName(), is( instanceOf( NameDefNode.class ) ) );
    NameDefNode name = (NameDefNode) entry.getName();
    assertThat( name.getParts(), is( notNullValue() ) );
    assertThat( name.getParts().size(), is( 5 ) );
    assertThat( entry.getName().getText(), is("a variable with in keyword") );
    assertThat( entry.getValue(), is( instanceOf( NumberNode.class ) ) );
    assertThat( entry.getResultType(), is( BuiltInType.NUMBER ) );
    assertThat( entry.getValue().getText(), is("10") );
    entry = ctx.getEntries().get( 1 );
    assertThat( entry.getName(), is( instanceOf( NameDefNode.class ) ) );
    name = (NameDefNode) entry.getName();
    assertThat( name.getParts(), is( notNullValue() ) );
    assertThat( name.getParts().size(), is( 2 ) );
    assertThat( entry.getName().getText(), is("another variable") );
    assertThat( entry.getValue(), is( instanceOf( InfixOpNode.class ) ) );
    assertThat( entry.getResultType(), is( BuiltInType.NUMBER ) );
    assertThat( entry.getValue().getText(), is( "a variable with in keyword + 20" ) );
    entry = ctx.getEntries().get( 2 );
    assertThat( entry.getName(), is( instanceOf( NameDefNode.class ) ) );
    name = (NameDefNode) entry.getName();
    assertThat( name.getParts(), is( notNullValue() ) );
    assertThat( name.getParts().size(), is( 3 ) );
    assertThat( entry.getName().getText(), is("another in variable") );
    assertThat( entry.getValue(), is( instanceOf( InfixOpNode.class ) ) );
    assertThat( entry.getResultType(), is( BuiltInType.NUMBER ) );
    assertThat( entry.getValue().getText(), is( "an external in variable / 2" ) );
}