@Test public void testEquals() throws Exception { UnaryOr<Object> p = new UnaryOr<Object>(); assertEquals(p, p); UnaryOr<Object> q = new UnaryOr<Object>(); assertObjectsAreEqual(p, q); UnaryAnd<Object> r = new UnaryAnd<Object>(); assertObjectsAreNotEqual(p, r); for (int i = 0; i < 3; i++) { p.or(Constant.truePredicate()); assertObjectsAreNotEqual(p, q); q.or(Constant.truePredicate()); assertObjectsAreEqual(p, q); r.and(Constant.truePredicate()); assertObjectsAreNotEqual(p, r); p.or(new UnaryOr<Object>(Constant.truePredicate(), Constant.falsePredicate())); assertObjectsAreNotEqual(p, q); q.or(new UnaryOr<Object>(Constant.truePredicate(), Constant.falsePredicate())); assertObjectsAreEqual(p, q); r.and(new UnaryOr<Object>(Constant.truePredicate(), Constant.falsePredicate())); assertObjectsAreNotEqual(p, r); } assertObjectsAreNotEqual(p, Constant.truePredicate()); UnaryOr<Object> s = new UnaryOr<Object>(); s.or(Constant.truePredicate()); s.or(new UnaryOr<Object>(Constant.truePredicate(), Constant.falsePredicate())); assertObjectsAreEqual(s, new UnaryOr<Object>(s.getUnaryPredicateList())); }