AbstractCombinedPredicate extends AbstractPredicate<ENTITY> implements CombinedPredicate<ENTITY> { @Override public abstract CombinedPredicate<ENTITY> or(Predicate<? super ENTITY> other); 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 testOr() { CombinedPredicate<Integer> p = CombinedPredicate.or(MOD2, MOD4); p = p.or(MOD8); for (int i = 0; i < 100; i++) { boolean expected = MOD2.test(i) || MOD4.test(i) || MOD8.test(i); boolean actual = p.test(i); assertEquals(expected, actual); } }