@Test
 public void supertype() throws ClassNotFoundException {
   final Collection<Shape> filtered = ListExtensions.filtered(shapes, Shape.class);
   assertThat(filtered.size(), is(3));
 }
 @Test
 public void subtype_whenNonMatching() throws ClassNotFoundException {
   final Collection<Rectangle> filtered = ListExtensions.filtered(shapes, Rectangle.class);
   assertThat(filtered.size(), is(0));
 }
 @Test
 public void empty() throws ClassNotFoundException {
   final Collection<Object> filtered =
       ListExtensions.filtered(Collections.emptyList(), Object.class);
   assertThat(filtered.isEmpty(), is(true));
 }