public void testHashCode() {
    assertTrue(pair1a.hashCode() == ("a".hashCode() ^ "b".hashCode()));
    assertTrue(pair2a.hashCode() == "a".hashCode());
    assertTrue(pair3a.hashCode() == "b".hashCode());
    assertTrue(pair4a.hashCode() == 0);

    assertTrue(pair1a.hashCode() != pair2a.hashCode());
    assertTrue(pair1a.hashCode() != pair3a.hashCode());
    assertTrue(pair1a.hashCode() != pair4a.hashCode());

    assertTrue(pair1a.hashCode() == pair1d.hashCode());
    assertTrue(pair2a.hashCode() == pair2c.hashCode());
    assertTrue(pair3a.hashCode() == pair3c.hashCode());
    assertTrue(pair4a.hashCode() == pair4b.hashCode());

    assertTrue(pair2b.hashCode() == pair3a.hashCode());
  }