### Question:
IsLessThanOrEqual implements BinaryPredicate<T, T> { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof IsLessThanOrEqual<?>)) { return false; } IsLessThanOrEqual<?> that = (IsLessThanOrEqual<?>) obj; return this.comparator.equals(that.comparator); } @SuppressWarnings("unchecked")  IsLessThanOrEqual();  IsLessThanOrEqual(Comparator<? super T> comparator); boolean test(T left, T right); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static IsLessThanOrEqual<T> instance(); static Predicate<T> instance(T right); static final IsLessThanOrEqual<Comparable<?>> INSTANCE; }### Answer:
@Test public void testEquals() throws Exception { IsLessThanOrEqual<Comparable<?>> p = new IsLessThanOrEqual<Comparable<?>>(); assertEquals(p,p); assertObjectsAreEqual(p,new IsLessThanOrEqual<Comparable<?>>()); assertObjectsAreEqual(p,new IsLessThanOrEqual<Integer>(ComparableComparator.<Integer>instance())); assertObjectsAreEqual(p,IsLessThanOrEqual.instance()); assertObjectsAreNotEqual(p,Constant.FALSE); assertFalse(p.equals(null)); }