@SuppressWarnings("unchecked")
@Test
public void testIteratorFour() {

    assertThat(CartesianProductIterable.of(limit(source, 4)), contains(
        Pair.of("A", "B"),
        Pair.of("A", "C"),
        Pair.of("A", "D"),
        Pair.of("B", "C"),
        Pair.of("B", "D"),
        Pair.of("C", "D")
    ));
}