### Question:
TimeSeriesDataItem implements Cloneable, Comparable<TimeSeriesDataItem>, Serializable { @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof TimeSeriesDataItem)) { return false; } TimeSeriesDataItem that = (TimeSeriesDataItem) obj; if (!ObjectUtilities.equal(this.period, that.period)) { return false; } if (!ObjectUtilities.equal(this.value, that.value)) { return false; } return true; } TimeSeriesDataItem(RegularTimePeriod period, Number value);  TimeSeriesDataItem(RegularTimePeriod period, double value); RegularTimePeriod getPeriod(); Number getValue(); void setValue(Number value); @Override boolean equals(Object obj); @Override int hashCode(); @Override int compareTo(TimeSeriesDataItem o1); @Override Object clone();  }### Answer:
@Test public void testEquals() { TimeSeriesDataItem item1 = new TimeSeriesDataItem( new Day(23, 9, 2001), 99.7 ); TimeSeriesDataItem item2 = new TimeSeriesDataItem( new Day(23, 9, 2001), 99.7 ); assertEquals(item1, item2); assertEquals(item2, item1); item1.setValue(5); assertFalse(item1.equals(item2)); item2.setValue(5); assertEquals(item1, item2); }