コード例 #1
0
  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));
  }