@Override
    public final String toString() {
        StringBuilder out = new StringBuilder();
        appendTo(out);
        return out.toString();
    }
@Test
    void requireThatPredicatesCanBeBuiltUsingChainedMethodCalls() {
        assertEquals("country not in [no, se] or age in [20..] or height in [..160]",
                new Disjunction()
                        .addOperand(new Negation(new FeatureSet("country").addValue("no").addValue("se")))
                        .addOperand(new FeatureRange("age").setFromInclusive(20L))
                        .addOperand(new FeatureRange("height").setToInclusive(160L))
                        .toString());
    }