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