@Override
    public boolean test(Pickle pickle) {
        if (expressions.isEmpty()) {
            return true;
        }

        List<String> tags = pickle.getTags();
        return expressions.stream()
                .allMatch(expression -> expression.evaluate(tags));
    }
@Test
    void not_tag_predicate_does_not_match_pickle_with_same_single_tag() {
        Pickle pickle = createPickleWithTags("@FOO");
        TagPredicate predicate = createPredicate("not @FOO");
        assertFalse(predicate.test(pickle));
    }