public void testEqual() throws Exception { ConstraintSet cs1 = new ConstraintSet(ConstraintOp.AND); ConstraintSet cs2 = new ConstraintSet(ConstraintOp.AND); ConstraintSet cs3 = new ConstraintSet(ConstraintOp.AND); ConstraintSet cs4 = new ConstraintSet(ConstraintOp.AND); ConstraintSet cs5 = new ConstraintSet(ConstraintOp.OR); ConstraintSet cs6 = new ConstraintSet(ConstraintOp.NAND); cs1.addConstraint(sc1).addConstraint(sc2); cs2.addConstraint(sc1).addConstraint(sc2); assertEquals(cs1, cs1); assertEquals(cs1, cs2); // cs3 has same two constraints but in different oreder, should still be equal cs3.addConstraint(sc2).addConstraint(sc1); assertEquals(cs1, cs3); cs4.addConstraint(sc1); assertEquals(cs4, cs4); assertTrue("Expected cs1 and cs4 to not be equal", !cs1.equals(cs4)); // cs5 is AND, cs4 is OR cs5.addConstraint(sc1); assertTrue("Expected cs4 and cs5 to not be equal", !cs4.equals(cs5)); // cs6 is negated, cs4 is not cs6.addConstraint(sc1); assertTrue("Expected cs4 and cs6 to not be equal", !cs4.equals(cs6)); }