/** A test for bug 1832432. */
  @Test
  public void testBug1832432() throws CloneNotSupportedException {
    TimeSeries s1 = new TimeSeries("Series");
    TimeSeries s2 = (TimeSeries) s1.clone();
    assertTrue(s1 != s2);
    assertTrue(s1.getClass() == s2.getClass());
    assertTrue(s1.equals(s2));

    // test independence
    s1.add(new Day(1, 1, 2007), 100.0);
    assertFalse(s1.equals(s2));
  }
  /** Another test of the clone() method. */
  @Test
  public void testClone2() throws CloneNotSupportedException {
    TimeSeries s1 = new TimeSeries("S1", Year.class);
    s1.add(new Year(2007), 100.0);
    s1.add(new Year(2008), null);
    s1.add(new Year(2009), 200.0);
    TimeSeries s2 = (TimeSeries) s1.clone();
    assertTrue(s1.equals(s2));

    // check independence
    s2.addOrUpdate(new Year(2009), 300.0);
    assertFalse(s1.equals(s2));
    s1.addOrUpdate(new Year(2009), 300.0);
    assertTrue(s1.equals(s2));
  }
  /** Check that cloning works. */
  @Test
  public void testClone() throws CloneNotSupportedException {

    TimeSeries series = new TimeSeries("Test Series");
    RegularTimePeriod jan1st2002 = new Day(1, MonthConstants.JANUARY, 2002);
    series.add(jan1st2002, new Integer(42));

    TimeSeries clone;
    clone = (TimeSeries) series.clone();
    clone.setKey("Clone Series");
    clone.update(jan1st2002, new Integer(10));

    int seriesValue = series.getValue(jan1st2002).intValue();
    int cloneValue = clone.getValue(jan1st2002).intValue();

    assertEquals(42, seriesValue);
    assertEquals(10, cloneValue);
    assertEquals("Test Series", series.getKey());
    assertEquals("Clone Series", clone.getKey());
  }