### Question:
NeverMatcher implements Predicate<OpenNode<? extends E, ?>> { @Override public boolean equals(Object o) { return o != null && (o == this || o.getClass().equals(getClass())); }  @Override boolean test(OpenNode<? extends E, ?> node); @Override boolean equals(Object o); @Override int hashCode(); @SuppressWarnings("unchecked") static Predicate<OpenNode<? extends E, ?>> create();  }### Answer:
@Test public void testEquals() { final Predicate<OpenNode<? extends String, ?>> matcher0 = NeverMatcher.create(); final Predicate<OpenNode<? extends String, ?>> matcher1 = NeverMatcher.create(); assertTrue(matcher0.equals(matcher1)); assertTrue(matcher1.equals(matcher0)); assertEquals(matcher0.hashCode(), matcher1.hashCode()); }