private <T> T accept(Expression<T> expr) {
        return expr.accept(this);
    }
@Test
    public void testLesser() throws Exception {
        assertThat(Expr.Lesser.create(
                Expr.NumberValue.create(1), Expr.NumberValue.create(2)
        ).accept(new BooleanNumberConditionsVisitor()))
                .isTrue();

        assertThat(Expr.Lesser.create(
                Expr.NumberValue.create(2), Expr.NumberValue.create(2)
        ).accept(new BooleanNumberConditionsVisitor()))
                .isFalse();

        assertThat(Expr.Lesser.create(
                Expr.NumberValue.create(3), Expr.NumberValue.create(2)
        ).accept(new BooleanNumberConditionsVisitor()))
                .isFalse();

        assertThat(loadCondition("condition-lesser.json").accept(new BooleanNumberConditionsVisitor()))
                .isTrue();
    }