### Question:
TimePeriodValues extends Series implements Serializable { @Override public Object clone() throws CloneNotSupportedException { Object clone = createCopy(0, getItemCount() - 1); return clone; } TimePeriodValues(String name);  TimePeriodValues(String name, String domain, String range); String getDomainDescription(); void setDomainDescription(String description); String getRangeDescription(); void setRangeDescription(String description); @Override int getItemCount(); TimePeriodValue getDataItem(int index); TimePeriod getTimePeriod(int index); Number getValue(int index); void add(TimePeriodValue item); void add(TimePeriod period, double value); void add(TimePeriod period, Number value); void update(int index, Number value); void delete(int start, int end); @Override boolean equals(Object obj); @Override int hashCode(); @Override Object clone(); TimePeriodValues createCopy(int start, int end); int getMinStartIndex(); int getMaxStartIndex(); int getMinMiddleIndex(); int getMaxMiddleIndex(); int getMinEndIndex(); int getMaxEndIndex();  }### Answer:
@Test public void testClone() throws CloneNotSupportedException { TimePeriodValues series = new TimePeriodValues("Test Series"); RegularTimePeriod jan1st2002 = new Day(1, MonthConstants.JANUARY, 2002); series.add(jan1st2002, new Integer(42)); TimePeriodValues clone = (TimePeriodValues) series.clone(); clone.setKey("Clone Series"); clone.update(0, 10); int seriesValue = series.getValue(0).intValue(); int cloneValue = clone.getValue(0).intValue(); assertEquals(42, seriesValue); assertEquals(10, cloneValue); assertEquals("Test Series", series.getKey()); assertEquals("Clone Series", clone.getKey()); }