### Question:
GeneratorContains implements BinaryPredicate<Generator<? extends T>, Predicate<? super T>> { public boolean test(Generator<? extends T> left, Predicate<? super T> right) { ContainsProcedure<T> findProcedure = new ContainsProcedure<T>(right); left.run(findProcedure); return findProcedure.found; }  boolean test(Generator<? extends T> left, Predicate<? super T> right); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static GeneratorContains<Object> instance();  }### Answer:
@Test public void testContains() { assertTrue(new GeneratorContains<Integer>() .test(IteratorToGeneratorAdapter.adapt(list.iterator()), equalsThree)); assertFalse(new GeneratorContains<Integer>().test(IteratorToGeneratorAdapter.adapt(list.iterator()), equalsTwentyThree)); }