### Question:
FilteredGenerator extends BaseGenerator<E> { @Override public int hashCode() { int result = "FilteredGenerator".hashCode(); result <<= 2; Generator<?> gen = getWrappedGenerator(); result ^= gen.hashCode(); result <<= 2; result ^= pred.hashCode(); return result; } FilteredGenerator(Generator<? extends E> wrapped, Predicate<? super E> pred); void run(Procedure<? super E> proc); @Override boolean equals(Object obj); @Override int hashCode();  }### Answer:
@Test public void testHashcode() { assertEquals(filteredGenerator.hashCode(), filteredGenerator.hashCode()); assertEquals(filteredGenerator.hashCode(), new FilteredGenerator<Integer>(wrappedGenerator, isEven).hashCode()); }