### Question:
Iterables { public static <T> Multiset<T> asMultiset(Iterable<? extends T> iterable) { return multisetFrom(iterable); } private  Iterables(); static Iterable<T> concat(Iterable<? extends Iterable<? extends T>> iterables); static List<T> asList(Iterable<? extends T> iterable); static Set<T> asSet(Iterable<? extends T> iterable); static Multiset<T> asMultiset(Iterable<? extends T> iterable); static Collection<T> materialize(Iterable<? extends T> iterable); static Iterable<T> empty();  }### Answer:
@Test public void shouldConvertTheSuppliedIterableToAMultiset() throws Exception { Iterable<Integer> iterable = basicIterableOver(1, 2, 2, 3, 3, 3); Multiset<Integer> expectedMultiset = multisetWith(1, 2, 2, 3, 3, 3); Multiset<Integer> actualMultiset = asMultiset(iterable); assertThat(actualMultiset, hasOnlyItemsInAnyOrder(expectedMultiset)); }
@Test(expected = NullPointerException.class) public void shouldThrowANullPointerExceptionIfIterablePassedToAsMultisetIsNull() throws Exception { asMultiset(null); }