### Question:
IndexOfInGenerator implements BinaryFunction<LoopGenerator<? extends T>, Predicate<? super T>, Number> { public Number evaluate(LoopGenerator<? extends T> left, Predicate<? super T> right) { IndexProcedure<T> findProcedure = new IndexProcedure<T>(left, right); left.run(findProcedure); return Long.valueOf(findProcedure.index); }  Number evaluate(LoopGenerator<? extends T> left, Predicate<? super T> right); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static IndexOfInGenerator<Object> instance();  }### Answer:
@Test public void testIndexOfInGenerator() { assertEquals(3L, new IndexOfInGenerator<Integer>().evaluate(IteratorToGeneratorAdapter.adapt(list.iterator()),equalsThree)); }