### Question:
NullaryOr extends BaseNullaryPredicateList { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof NullaryOr)) { return false; } NullaryOr that = (NullaryOr) obj; return getNullaryPredicateListEquals(that); } NullaryOr();  NullaryOr(Iterable<NullaryPredicate> predicates);  NullaryOr(NullaryPredicate... predicates); NullaryOr or(NullaryPredicate p); boolean test(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testEquals() throws Exception { NullaryOr p = new NullaryOr(); assertEquals(p,p); NullaryOr q = new NullaryOr(); assertObjectsAreEqual(p,q); NullaryAnd r = new NullaryAnd(); assertObjectsAreNotEqual(p,r); for (int i=0;i<3;i++) { p.or(Constant.TRUE); assertObjectsAreNotEqual(p,q); q.or(Constant.TRUE); assertObjectsAreEqual(p,q); r.and(Constant.TRUE); assertObjectsAreNotEqual(p,r); p.or(new NullaryOr(Constant.TRUE,Constant.FALSE)); assertObjectsAreNotEqual(p,q); q.or(new NullaryOr(Constant.TRUE,Constant.FALSE)); assertObjectsAreEqual(p,q); r.and(new NullaryOr(Constant.TRUE,Constant.FALSE)); assertObjectsAreNotEqual(p,r); } assertObjectsAreNotEqual(p,Constant.TRUE); assertObjectsAreNotEqual(p,new NullaryOr((Iterable<NullaryPredicate>)null)); assertObjectsAreNotEqual(p,new NullaryOr((NullaryPredicate[])null)); assertObjectsAreNotEqual(p,new NullaryOr((NullaryPredicate)null)); assertTrue(!p.equals(null)); }