### Question:
RetainMatching implements BinaryProcedure<Iterator<? extends T>, Predicate<? super T>> { public void run(Iterator<? extends T> left, Predicate<? super T> right) { removeMatching.run(left, Not.not(right)); }  void run(Iterator<? extends T> left, Predicate<? super T> right); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static RetainMatching<Object> instance();  }### Answer:
@Test public void testRemove() { new RetainMatching<Integer>().run(list.iterator(), isOdd); assertEquals(odds, list); }