Stamp implements Serializable { @Override public boolean equals(Object o) { if (!(o instanceof Stamp)) { return false; } else { Stamp other = (Stamp) o; return id.equals(other.getId()) && event.equals(other.getEvent()); } } Stamp();   Stamp(ID id, Event event); Stamp[] fork(); Stamp[] peek(); Stamp join(Stamp other); Stamp event(); @Override String toString(); @Override boolean equals(Object o); @Override int hashCode(); Stamp[] send(); Stamp receive(Stamp other); Stamp[] sync(Stamp other); boolean leq(Stamp other);  }
@Test public void testEquals() { assertTrue(seedStamp.equals(new Stamp())); assertFalse(seedStamp.equals(forkedStamp1)); assertTrue(forkedStamp1.equals(forkedStamp1)); assertFalse(forkedStamp1.equals(forkedStamp2)); }