@SuppressWarnings("unchecked") // varargs public void testOr_applyIterable() { Predicate<Integer> vacuouslyFalse = Predicates.or(Collections.<Predicate<Integer>>emptyList()); Predicate<Integer> troo = Predicates.or(Collections.singletonList(TRUE)); /* * newLinkedList() takes varargs. TRUE and FALSE are both instances of * Predicate<Integer>, so the call is safe. */ Predicate<Integer> trueAndFalse = Predicates.or(Arrays.asList(TRUE, FALSE)); assertEvalsToFalse(vacuouslyFalse); assertEvalsToTrue(troo); assertEvalsToTrue(trueAndFalse); }
public void testOr_applyBinary() { Predicate<Integer> falseOrFalse = Predicates.or(FALSE, FALSE); Predicate<Integer> falseOrTrue = Predicates.or(FALSE, TRUE); Predicate<Integer> trueOrAnything = Predicates.or(TRUE, NEVER_REACHED); assertEvalsToFalse(falseOrFalse); assertEvalsToTrue(falseOrTrue); assertEvalsToTrue(trueOrAnything); }
@SuppressWarnings("unchecked") // varargs public void testOr_equalityIterable() { new EqualsTester() .addEqualityGroup( Predicates.or(Arrays.asList(FALSE, NEVER_REACHED)), Predicates.or(Arrays.asList(FALSE, NEVER_REACHED)), Predicates.or(FALSE, NEVER_REACHED)) .addEqualityGroup(Predicates.or(TRUE, NEVER_REACHED)) .addEqualityGroup(Predicates.and(FALSE, NEVER_REACHED)) .testEquals(); }
public void testOr_listDefensivelyCopied() { List<Predicate<Object>> list = newArrayList(); Predicate<Object> predicate = Predicates.or(list); assertFalse(predicate.apply(1)); list.add(Predicates.alwaysTrue()); assertFalse(predicate.apply(1)); }
@SuppressWarnings("unchecked") // varargs public void testOr_equalityOneArg() { new EqualsTester() .addEqualityGroup(Predicates.or(NEVER_REACHED), Predicates.or(NEVER_REACHED)) .addEqualityGroup(Predicates.or(NEVER_REACHED, TRUE)) .addEqualityGroup(Predicates.or(TRUE)) .addEqualityGroup(Predicates.or()) .addEqualityGroup(Predicates.and(NEVER_REACHED)) .testEquals(); }
@SuppressWarnings("unchecked") // varargs public void testOr_equalityBinary() { new EqualsTester() .addEqualityGroup(Predicates.or(FALSE, NEVER_REACHED), Predicates.or(FALSE, NEVER_REACHED)) .addEqualityGroup(Predicates.or(NEVER_REACHED, FALSE)) .addEqualityGroup(Predicates.or(TRUE)) .addEqualityGroup(Predicates.and(FALSE, NEVER_REACHED)) .testEquals(); }
@SuppressWarnings("unchecked") // varargs public void testOr_equalityTernary() { new EqualsTester() .addEqualityGroup( Predicates.or(FALSE, NEVER_REACHED, TRUE), Predicates.or(FALSE, NEVER_REACHED, TRUE)) .addEqualityGroup(Predicates.or(TRUE, NEVER_REACHED, FALSE)) .addEqualityGroup(Predicates.or(TRUE)) .addEqualityGroup(Predicates.and(FALSE, NEVER_REACHED, TRUE)) .testEquals(); }
public void testHashCodeForBooleanOperations() { Predicate<Integer> p1 = Predicates.isNull(); Predicate<Integer> p2 = isOdd(); // Make sure that hash codes are not computed per-instance. assertEqualHashCode(Predicates.not(p1), Predicates.not(p1)); assertEqualHashCode(Predicates.and(p1, p2), Predicates.and(p1, p2)); assertEqualHashCode(Predicates.or(p1, p2), Predicates.or(p1, p2)); // While not a contractual requirement, we'd like the hash codes for ands // & ors of the same predicates to not collide. assertTrue(Predicates.and(p1, p2).hashCode() != Predicates.or(p1, p2).hashCode()); }
@SuppressWarnings("unchecked") // varargs public void testOr_applyTernary() { assertEvalsLikeOdd(Predicates.or(isOdd(), FALSE, FALSE)); assertEvalsLikeOdd(Predicates.or(FALSE, isOdd(), FALSE)); assertEvalsLikeOdd(Predicates.or(FALSE, FALSE, isOdd())); assertEvalsToTrue(Predicates.or(FALSE, TRUE, NEVER_REACHED)); }
@GwtIncompatible // SerializableTester @SuppressWarnings("unchecked") // varargs public void testOr_serializationIterable() { Predicate<Integer> pre = Predicates.or(Arrays.asList(TRUE, FALSE)); Predicate<Integer> post = SerializableTester.reserializeAndAssert(pre); assertEquals(pre.apply(0), post.apply(0)); }
@SuppressWarnings("unchecked") // varargs public void testOr_arrayDefensivelyCopied() { Predicate[] array = {Predicates.alwaysFalse()}; Predicate<Object> predicate = Predicates.or(array); assertFalse(predicate.apply(1)); array[0] = Predicates.alwaysTrue(); assertFalse(predicate.apply(1)); }
@GwtIncompatible // SerializableTester @SuppressWarnings("unchecked") // varargs public void testOr_serializationNoArgs() { checkSerialization(Predicates.or()); }
@SuppressWarnings("unchecked") // varargs public void testAnd_equalityIterable() { new EqualsTester() .addEqualityGroup( Predicates.and(Arrays.asList(TRUE, NEVER_REACHED)), Predicates.and(Arrays.asList(TRUE, NEVER_REACHED)), Predicates.and(TRUE, NEVER_REACHED)) .addEqualityGroup(Predicates.and(FALSE, NEVER_REACHED)) .addEqualityGroup(Predicates.or(TRUE, NEVER_REACHED)) .testEquals(); }
@SuppressWarnings("unchecked") // varargs public void testAnd_equalityNoArgs() { new EqualsTester() .addEqualityGroup(Predicates.and(), Predicates.and()) .addEqualityGroup(Predicates.and(FALSE)) .addEqualityGroup(Predicates.or()) .testEquals(); }
@SuppressWarnings("unchecked") // varargs public void testAnd_equalityBinary() { new EqualsTester() .addEqualityGroup(Predicates.and(TRUE, NEVER_REACHED), Predicates.and(TRUE, NEVER_REACHED)) .addEqualityGroup(Predicates.and(NEVER_REACHED, TRUE)) .addEqualityGroup(Predicates.and(TRUE)) .addEqualityGroup(Predicates.or(TRUE, NEVER_REACHED)) .testEquals(); }
@SuppressWarnings("unchecked") // varargs public void testAnd_equalityOneArg() { Object[] notEqualObjects = {Predicates.and(NEVER_REACHED, FALSE)}; new EqualsTester() .addEqualityGroup(Predicates.and(NEVER_REACHED), Predicates.and(NEVER_REACHED)) .addEqualityGroup(notEqualObjects) .addEqualityGroup(Predicates.and(isOdd())) .addEqualityGroup(Predicates.and()) .addEqualityGroup(Predicates.or(NEVER_REACHED)) .testEquals(); }
@GwtIncompatible // SerializableTester @SuppressWarnings("unchecked") // varargs public void testOr_serializationOneArg() { checkSerialization(Predicates.or(isOdd())); }
@SuppressWarnings("unchecked") // varargs public void testAnd_equalityTernary() { new EqualsTester() .addEqualityGroup( Predicates.and(TRUE, isOdd(), NEVER_REACHED), Predicates.and(TRUE, isOdd(), NEVER_REACHED)) .addEqualityGroup(Predicates.and(isOdd(), NEVER_REACHED, TRUE)) .addEqualityGroup(Predicates.and(TRUE)) .addEqualityGroup(Predicates.or(TRUE, isOdd(), NEVER_REACHED)) .testEquals(); }