### Question:
LeftIdentity { public static <L, R> BinaryFunction<L, R, L> function() { return IgnoreRightFunction.adapt(new Identity<L>()); } LeftIdentity(); static BinaryFunction<L, R, L> function(); static BinaryPredicate<Boolean, R> predicate(); static final BinaryFunction<Object, Object, Object> FUNCTION; static final BinaryPredicate<Boolean, Object> PREDICATE; }### Answer:
@Test public void testEquals() throws Exception { BinaryFunction<Object, Object, Object> f = LeftIdentity.<Object, Object>function(); assertEquals(f,f); assertObjectsAreEqual(f,LeftIdentity.FUNCTION); assertObjectsAreEqual(f,LeftIdentity.FUNCTION); assertObjectsAreNotEqual(f,RightIdentity.FUNCTION); assertObjectsAreNotEqual(f,Constant.of("abcde")); assertObjectsAreNotEqual(f,Constant.of(Boolean.TRUE)); }
@Test public void testConstant() throws Exception { assertEquals(LeftIdentity.function(),LeftIdentity.function()); }