### Question:
CollectionFunctionals { public static Predicate<Iterable<?>> sizeEquals(int targetSize) { return Predicates.compose(Predicates.equalTo(targetSize), CollectionFunctionals.sizeFunction()); }  static Supplier<Integer> sizeSupplier(final Iterable<?> collection); static Function<Iterable<?>, Integer> sizeFunction(); static Function<Iterable<?>, Integer> sizeFunction(final Integer valueIfInputNull); static Function<Iterable<? extends T>, T> firstElement(); static Function<Map<K,?>,Set<K>> keys(); static Function<Map<K, ?>, Integer> mapSize(); static Function<Map<K, ?>, Integer> mapSize(Integer valueIfNull); static Predicate<Iterable<?>> equalsSetOf(Object... target); static Predicate<Iterable<?>> equalsSet(final Iterable<?> target); static Predicate<Iterable<?>> sizeEquals(int targetSize); static Predicate<Iterable<?>> empty(); static Predicate<Iterable<?>> notEmpty(); static Predicate<Map<K,?>> mapSizeEquals(int targetSize); static Function<I, List<T>> limit(final int max); static Predicate<T> contains(I item); static Predicate<TT> all(Predicate<T> attributeSatisfies); static Predicate<TT> any(Predicate<T> attributeSatisfies); static Predicate<TT> quorum(QuorumCheck quorumCheck, Predicate<T> attributeSatisfies);  }### Answer:
@Test public void testListSize() { Assert.assertTrue(CollectionFunctionals.sizeEquals(2).apply(ImmutableList.of("x", "y"))); Assert.assertFalse(CollectionFunctionals.sizeEquals(2).apply(null)); Assert.assertTrue(CollectionFunctionals.sizeEquals(0).apply(ImmutableList.of())); Assert.assertFalse(CollectionFunctionals.sizeEquals(0).apply(null)); }