### Question:
NullaryFunctionNullaryPredicate implements NullaryPredicate { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof NullaryFunctionNullaryPredicate)) { return false; } NullaryFunctionNullaryPredicate that = (NullaryFunctionNullaryPredicate) obj; return this.function.equals(that.function); } NullaryFunctionNullaryPredicate(NullaryFunction<Boolean> function); boolean test(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); static NullaryFunctionNullaryPredicate adapt(NullaryFunction<Boolean> function);  }### Answer:
@Test public void testEquals() throws Exception { NullaryPredicate p = new NullaryFunctionNullaryPredicate(Constant.TRUE); assertEquals(p,p); assertObjectsAreEqual(p,new NullaryFunctionNullaryPredicate(Constant.TRUE)); assertObjectsAreNotEqual(p,Constant.TRUE); assertObjectsAreNotEqual(p,new NullaryFunctionNullaryPredicate(Constant.FALSE)); assertTrue(!p.equals(null)); }