### Question:
BinaryNot implements BinaryPredicate<L, R> { public static <L, R> BinaryPredicate<L, R> not(BinaryPredicate<? super L, ? super R> that) { return null == that ? null : new BinaryNot<L, R>(that); } BinaryNot(BinaryPredicate<? super L, ? super R> predicate); boolean test(L left, R right); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static BinaryPredicate<L, R> not(BinaryPredicate<? super L, ? super R> that);  }### Answer:
@Test public void testNotNull() throws Exception { assertNull(BinaryNot.not(null)); }
@Test public void testNotNotNull() throws Exception { assertNotNull(BinaryNot.not(Constant.truePredicate())); }