### Question:
Selection implements Iterable<K> { boolean remove(@NonNull K key) { return mSelection.remove(key); } Selection();   Selection(@NonNull Set<K> selection); boolean contains(@Nullable K key); @Override Iterator<K> iterator(); int size(); boolean isEmpty(); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object other);  }### Answer:
@Test public void testRemove() { mSelection.remove(mIds[0]); mSelection.remove(mIds[2]); assertEquals(1, mSelection.size()); assertContains(mIds[1]); }
@Test public void testRemove_ExistingItemReturnsTrue() { assertTrue(mSelection.remove(mIds[0])); }
@Test public void testRemove_NewItemReturnsFalse() { assertFalse(mSelection.remove("poodles")); }