AbstractCombinedPredicate extends AbstractPredicate<ENTITY> implements CombinedPredicate<ENTITY> { @Override public int size() { return predicates.size(); } private  AbstractCombinedPredicate(
            final Type type,
            final List<Predicate<? super ENTITY>> predicates); @Override Stream<Predicate<? super ENTITY>> stream(); @Override int size(); @Override Type getType(); @Override abstract CombinedPredicate<ENTITY> and(Predicate<? super ENTITY> other); @Override abstract CombinedPredicate<ENTITY> or(Predicate<? super ENTITY> other); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }
@Test void testSize() { CombinedPredicate<Integer> p = CombinedPredicate.and(MOD2, MOD4); p = p.and(MOD8); final long actual = p.stream().count(); assertEquals(3, actual); }