### Question:
BinaryPredicateBinaryFunction implements BinaryFunction<L, R, Boolean> { public Boolean evaluate(L left, R right) { return predicate.test(left, right) ? Boolean.TRUE : Boolean.FALSE; } BinaryPredicateBinaryFunction(BinaryPredicate<? super L, ? super R> predicate); Boolean evaluate(L left, R right); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static BinaryPredicateBinaryFunction<L, R> adapt(BinaryPredicate<? super L, ? super R> predicate);  }### Answer:
@Test public void testTestWhenTrue() throws Exception { BinaryFunction<Object, Object, Boolean> f = new BinaryPredicateBinaryFunction<Object, Object>(Constant.TRUE); assertEquals(Boolean.TRUE, f.evaluate(null,null)); }
@Test public void testTestWhenFalse() throws Exception { BinaryFunction<Object, Object, Boolean> f = new BinaryPredicateBinaryFunction<Object, Object>(Constant.FALSE); assertEquals(Boolean.FALSE, f.evaluate(null,null)); }