/** Some checks for the getDataItem(int) method. */
  @Test
  public void testGetDataItem1() {
    TimeSeries series = new TimeSeries("S", Year.class);

    // can't get anything yet...just an exception
    boolean pass = false;
    try {
      /*TimeSeriesDataItem item =*/ series.getDataItem(0);
    } catch (IndexOutOfBoundsException e) {
      pass = true;
    }
    assertTrue(pass);

    series.add(new Year(2006), 100.0);
    TimeSeriesDataItem item = series.getDataItem(0);
    assertEquals(new Year(2006), item.getPeriod());
    pass = false;
    try {
      /*item = */ series.getDataItem(-1);
    } catch (IndexOutOfBoundsException e) {
      pass = true;
    }
    assertTrue(pass);

    pass = false;
    try {
      /*item = */ series.getDataItem(1);
    } catch (IndexOutOfBoundsException e) {
      pass = true;
    }
    assertTrue(pass);
  }
 /**
  * Create a TimeSeriesDataItem, add it to a TimeSeries. Now, modifying the original
  * TimeSeriesDataItem should NOT affect the TimeSeries.
  */
 @Test
 public void testAdd_TimeSeriesDataItem() {
   TimeSeriesDataItem item = new TimeSeriesDataItem(new Year(2009), 1.0);
   TimeSeries series = new TimeSeries("S1");
   series.add(item);
   assertTrue(item.equals(series.getDataItem(0)));
   item.setValue(new Double(99.9));
   assertFalse(item.equals(series.getDataItem(0)));
 }
  /** Some checks for the getDataItem(RegularTimePeriod) method. */
  @Test
  public void testGetDataItem2() {
    TimeSeries series = new TimeSeries("S", Year.class);
    assertNull(series.getDataItem(new Year(2006)));

    // try a null argument
    boolean pass = false;
    try {
      /* TimeSeriesDataItem item = */ series.getDataItem(null);
    } catch (IllegalArgumentException e) {
      pass = true;
    }
    assertTrue(pass);
  }
  /**
   * Test the setMaximumItemCount() method to ensure that it removes items from the series if
   * necessary.
   */
  @Test
  public void testSetMaximumItemCount() {
    TimeSeries s1 = new TimeSeries("S1", Year.class);
    s1.add(new Year(2000), 13.75);
    s1.add(new Year(2001), 11.90);
    s1.add(new Year(2002), null);
    s1.add(new Year(2005), 19.32);
    s1.add(new Year(2007), 16.89);
    assertTrue(s1.getItemCount() == 5);

    s1.setMaximumItemCount(3);
    assertTrue(s1.getItemCount() == 3);
    TimeSeriesDataItem item = s1.getDataItem(0);
    assertTrue(item.getPeriod().equals(new Year(2002)));
    assertEquals(16.89, s1.getMinY(), EPSILON);
    assertEquals(19.32, s1.getMaxY(), EPSILON);
  }