@Test
  void andOrAsCriteriaParams() {

    assertExpressional(person.age.is(1)
                    .and(person.age.is(2)),
            "call op=AND",
            "  call op=EQUAL path=age constant=1",
            "  call op=EQUAL path=age constant=2"
    );

    assertExpressional(person.age.is(1)
                    .and(person.age.is(2))
                    .and(person.age.is(3)),
    "call op=AND",
            "  call op=EQUAL path=age constant=1",
            "  call op=EQUAL path=age constant=2",
            "  call op=EQUAL path=age constant=3"
    );

    // combination of OR/AND
    assertExpressional(person.age.is(1).or(person.age.is(2).age.is(3)),
            "call op=OR",
            "  call op=EQUAL path=age constant=1",
            "  call op=AND",
            "    call op=EQUAL path=age constant=2",
            "    call op=EQUAL path=age constant=3");

    assertExpressional(person.age.is(1).or(person.age.is(2).age.is(3)),
            "call op=OR",
            "  call op=EQUAL path=age constant=1",
            "  call op=AND",
            "    call op=EQUAL path=age constant=2",
            "    call op=EQUAL path=age constant=3");

    assertExpressional(person.age.is(1).and(person.age.is(2).or().age.is(3)),
            "call op=AND",
            "  call op=EQUAL path=age constant=1",
            "  call op=OR",
            "    call op=EQUAL path=age constant=2",
            "    call op=EQUAL path=age constant=3");

    assertExpressional(person.age.is(1).and(person.age.is(2).or().age.is(3)),
            "call op=AND",
            "  call op=EQUAL path=age constant=1",
            "  call op=OR",
            "    call op=EQUAL path=age constant=2",
            "    call op=EQUAL path=age constant=3");

    assertExpressional(person.age.is(1).or().age.is(2).and(person.age.is(3)),
            "call op=AND",
            "  call op=OR",
            "    call op=EQUAL path=age constant=1",
            "    call op=EQUAL path=age constant=2",
            "  call op=EQUAL path=age constant=3");

  }
AND / ORs combined like {@code (A and B) or (C and D)}
criteria/common/test/org/immutables/criteria/ExpressionAsStringTest.java