### Question:
IsGreaterThan implements BinaryPredicate<T, T> { public boolean test(T left, T right) { return comparator.compare(left, right) > 0; } @SuppressWarnings("unchecked")  IsGreaterThan();  IsGreaterThan(Comparator<? super T> comparator); boolean test(T left, T right); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static IsGreaterThan<T> instance(); static Predicate<T> instance(T right); static final IsGreaterThan<Comparable<?>> INSTANCE; }### Answer:
@Test public void testTest() throws Exception { IsGreaterThan<Integer> p = new IsGreaterThan<Integer>(); assertFalse(p.test(Integer.valueOf(2), Integer.valueOf(4))); assertFalse(p.test(Integer.valueOf(3), Integer.valueOf(4))); assertFalse(p.test(Integer.valueOf(4), Integer.valueOf(4))); assertTrue(p.test(Integer.valueOf(5), Integer.valueOf(4))); assertTrue(p.test(Integer.valueOf(6), Integer.valueOf(4))); }