### Question:
FindWithinGenerator implements BinaryFunction<Generator<? extends E>, Predicate<? super E>, E> { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof FindWithinGenerator<?>)) { return false; } FindWithinGenerator<?> other = (FindWithinGenerator<?>) obj; return other.useIfNone == useIfNone && !useIfNone || (other.ifNone == this.ifNone || other.ifNone != null && other.ifNone.equals(this.ifNone)); } FindWithinGenerator();  FindWithinGenerator(E ifNone); E evaluate(Generator<? extends E> left, Predicate<? super E> right); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static FindWithinGenerator<Object> instance(); static final FindWithinGenerator<Object> INSTANCE; }### Answer:
@Test public void testEquals() { FindWithinGenerator<Object> f = new FindWithinGenerator<Object>(); assertEquals(f, f); assertObjectsAreEqual(f, new FindWithinGenerator<Object>()); assertObjectsAreEqual(new FindWithinGenerator<Object>(Double.valueOf(0)), new FindWithinGenerator<Object>( Double.valueOf(0))); assertObjectsAreNotEqual(f, new FindWithinGenerator<Object>(Integer.valueOf(0))); }