public void testEqualsHashCode() {
    MutableInterval test1 = new MutableInterval(TEST_TIME1, TEST_TIME2);
    MutableInterval test2 = new MutableInterval(TEST_TIME1, TEST_TIME2);
    assertEquals(true, test1.equals(test2));
    assertEquals(true, test2.equals(test1));
    assertEquals(true, test1.equals(test1));
    assertEquals(true, test2.equals(test2));
    assertEquals(true, test1.hashCode() == test2.hashCode());
    assertEquals(true, test1.hashCode() == test1.hashCode());
    assertEquals(true, test2.hashCode() == test2.hashCode());

    MutableInterval test3 = new MutableInterval(TEST_TIME_NOW, TEST_TIME2);
    assertEquals(false, test1.equals(test3));
    assertEquals(false, test2.equals(test3));
    assertEquals(false, test3.equals(test1));
    assertEquals(false, test3.equals(test2));
    assertEquals(false, test1.hashCode() == test3.hashCode());
    assertEquals(false, test2.hashCode() == test3.hashCode());

    MutableInterval test4 = new MutableInterval(TEST_TIME1, TEST_TIME2, GJChronology.getInstance());
    assertEquals(true, test4.equals(test4));
    assertEquals(false, test1.equals(test4));
    assertEquals(false, test2.equals(test4));
    assertEquals(false, test4.equals(test1));
    assertEquals(false, test4.equals(test2));
    assertEquals(false, test1.hashCode() == test4.hashCode());
    assertEquals(false, test2.hashCode() == test4.hashCode());

    MutableInterval test5 = new MutableInterval(TEST_TIME1, TEST_TIME2);
    assertEquals(true, test1.equals(test5));
    assertEquals(true, test2.equals(test5));
    assertEquals(false, test3.equals(test5));
    assertEquals(true, test5.equals(test1));
    assertEquals(true, test5.equals(test2));
    assertEquals(false, test5.equals(test3));
    assertEquals(true, test1.hashCode() == test5.hashCode());
    assertEquals(true, test2.hashCode() == test5.hashCode());
    assertEquals(false, test3.hashCode() == test5.hashCode());

    assertEquals(false, test1.equals("Hello"));
    assertEquals(true, test1.equals(new MockInterval()));
    assertEquals(false, test1.equals(new DateTime(TEST_TIME1)));
  }