### Question:
DefaultClock extends DefaultTemporalReferenceSystem implements Clock { @Override public boolean equals(Object object, ComparisonMode mode) { boolean sup = super.equals(object, mode); if (!sup) return false; final DefaultClock that; if (object instanceof DefaultClock) { that = (DefaultClock) object; return Objects.equals(this.dateBasis, that.dateBasis) && Objects.equals(this.referenceEvent, that.referenceEvent) && Objects.equals(this.referenceTime, that.referenceTime) && Objects.equals(this.utcReference, that.utcReference); } return false; } DefaultClock(Map<String, ?> properties,
            ClockTime referenceTime, ClockTime utcReference, Collection<Calendar> dateBasis); private  DefaultClock(); private  DefaultClock(final Clock object); static DefaultClock castOrCopy(final Clock object); @Override @XmlElement(name = "referenceEvent", required = true) InternationalString getReferenceEvent(); @Override ClockTime getReferenceTime(); @Override ClockTime getUTCReference(); @XmlElement(name = "dateBasis") Collection<Calendar> getDateBasis(); @Override ClockTime clkTrans(final ClockTime uTime); @Override ClockTime utcTrans(final ClockTime clkTime); @Override boolean equals(Object object, ComparisonMode mode); @Override String toString();  }### Answer:
@Test public void testEquals() { assertFalse(clock1.equals(null)); assertEquals(clock1, clock1); assertFalse(clock1.equals(clock2)); }