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