### Question:
ConditionalBinaryFunction implements BinaryFunction<L, R, T> { public T evaluate(L left, R right) { if (ifPred.test(left, right)) { return thenFunc.evaluate(left, right); } else { return elseFunc.evaluate(left, right); } } ConditionalBinaryFunction(BinaryPredicate<? super L, ? super R> ifPred,
            BinaryFunction<? super L, ? super R, ? extends T> thenFunc,
            BinaryFunction<? super L, ? super R, ? extends T> elseFunc); T evaluate(L left, R right); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testEvaluate() throws Exception { ConditionalBinaryFunction<Boolean, Object, String> f = new ConditionalBinaryFunction<Boolean, Object, String>( LeftIdentity.PREDICATE, Constant.of("left"), Constant.of("right")); assertEquals("left",f.evaluate(Boolean.TRUE,null)); assertEquals("right",f.evaluate(Boolean.FALSE,null)); }