/** Some checks for the removeAgedItems() method. */
  @Test
  public void testRemoveAgedItems() {
    TimeSeries series = new TimeSeries("Test Series", Year.class);
    series.addChangeListener(this);
    assertEquals(Long.MAX_VALUE, series.getMaximumItemAge());
    assertEquals(Integer.MAX_VALUE, series.getMaximumItemCount());
    this.gotSeriesChangeEvent = false;

    // test empty series
    series.removeAgedItems(true);
    assertEquals(0, series.getItemCount());
    assertFalse(this.gotSeriesChangeEvent);

    // test series with one item
    series.add(new Year(1999), 1.0);
    series.setMaximumItemAge(0);
    this.gotSeriesChangeEvent = false;
    series.removeAgedItems(true);
    assertEquals(1, series.getItemCount());
    assertFalse(this.gotSeriesChangeEvent);

    // test series with two items
    series.setMaximumItemAge(10);
    series.add(new Year(2001), 2.0);
    this.gotSeriesChangeEvent = false;
    series.setMaximumItemAge(2);
    assertEquals(2, series.getItemCount());
    assertEquals(0, series.getIndex(new Year(1999)));
    assertFalse(this.gotSeriesChangeEvent);
    series.setMaximumItemAge(1);
    assertEquals(1, series.getItemCount());
    assertEquals(0, series.getIndex(new Year(2001)));
    assertTrue(this.gotSeriesChangeEvent);
  }
  /** A test for the clear method. */
  @Test
  public void testClear() {
    TimeSeries s1 = new TimeSeries("S1");
    s1.add(new Year(2009), 1.1);
    s1.add(new Year(2010), 2.2);

    assertEquals(2, s1.getItemCount());

    s1.clear();
    assertEquals(0, s1.getItemCount());
    assertTrue(Double.isNaN(s1.getMinY()));
    assertTrue(Double.isNaN(s1.getMaxY()));
  }
 /** Some checks for the addOrUpdate() method. */
 @Test
 public void testAddOrUpdate() {
   TimeSeries s1 = new TimeSeries("S1", Year.class);
   s1.setMaximumItemCount(2);
   s1.addOrUpdate(new Year(2000), 100.0);
   assertEquals(1, s1.getItemCount());
   s1.addOrUpdate(new Year(2001), 101.0);
   assertEquals(2, s1.getItemCount());
   s1.addOrUpdate(new Year(2001), 102.0);
   assertEquals(2, s1.getItemCount());
   s1.addOrUpdate(new Year(2002), 103.0);
   assertEquals(2, s1.getItemCount());
 }
  /** Basic tests for the delete() method. */
  @Test
  public void testDelete2() {
    TimeSeries s1 = new TimeSeries("Series", Year.class);
    s1.add(new Year(2000), 13.75);
    s1.add(new Year(2001), 11.90);
    s1.add(new Year(2002), null);
    s1.addChangeListener(this);
    this.gotSeriesChangeEvent = false;
    s1.delete(new Year(2001));
    assertTrue(this.gotSeriesChangeEvent);
    assertEquals(2, s1.getItemCount());
    assertEquals(null, s1.getValue(new Year(2001)));

    // try deleting a time period that doesn't exist...
    this.gotSeriesChangeEvent = false;
    s1.delete(new Year(2006));
    assertFalse(this.gotSeriesChangeEvent);

    // try deleting null
    try {
      s1.delete(null);
      fail("Expected IllegalArgumentException.");
    } catch (IllegalArgumentException e) {
      // expected
    }
  }
  /**
   * 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);
  }
 /**
  * Check that the item bounds are determined correctly when there is a maximum item count and a
  * new value is added.
  */
 @Test
 public void testAdd() {
   TimeSeries s1 = new TimeSeries("S1");
   s1.setMaximumItemCount(2);
   s1.add(new Year(2010), 1.1);
   s1.add(new Year(2011), 2.2);
   s1.add(new Year(2012), 3.3);
   assertEquals(2, s1.getItemCount());
   assertEquals(2.2, s1.getMinY(), EPSILON);
   assertEquals(3.3, s1.getMaxY(), EPSILON);
 }
Esempio n. 7
0
  /**
   * actually recalculates the first average (necessary when we change the average settings)
   *
   * @param d
   */
  public void recalculateAverage1() {

    // average1=new TimeSeries("av1", FixedMillisecond.class);
    average1.delete(0, average1.getItemCount() - 1);

    for (int z = 0; z < x1.getItemCount(); z++) {
      try {
        double v = 0;

        // List l1=x1.getItems();

        for (int i = z; i < z + av1; i++) {
          v += x1.getValue(x1.getItemCount() - (av1 - i)).doubleValue();
        }
        average1.add(x1.getTimePeriod(z), v / av1);

      } catch (Exception e) {
        // e.printStackTrace();
        // System.out.println(timestamp.toString());
      }
    }
  }
 /** Check that the item bounds are determined correctly after a call to removeAgedItems(). */
 @Test
 public void testRemoveAgedItems5() {
   TimeSeries s1 = new TimeSeries("S1");
   s1.setMaximumItemAge(4);
   s1.add(new Year(2010), 1.1);
   s1.add(new Year(2011), 2.2);
   s1.add(new Year(2012), 3.3);
   s1.add(new Year(2013), 2.5);
   s1.removeAgedItems(new Year(2015).getMiddleMillisecond(), true);
   assertEquals(3, s1.getItemCount());
   assertEquals(2.2, s1.getMinY(), EPSILON);
   assertEquals(3.3, s1.getMaxY(), EPSILON);
 }
 /** A test for the bug report 1075255. */
 @Test
 public void testBug1075255() {
   TimeSeries ts = new TimeSeries("dummy");
   ts.add(new FixedMillisecond(0L), 0.0);
   TimeSeries ts2 = new TimeSeries("dummy2");
   ts2.add(new FixedMillisecond(0L), 1.0);
   try {
     ts.addAndOrUpdate(ts2);
   } catch (Exception e) {
     fail("No exceptions should be thrown.");
   }
   assertEquals(1, ts.getItemCount());
 }
Esempio n. 10
0
  public void calcAverage1(int d, Date timestamp) {
    try {
      double v = 0;

      // List l1=x1.getItems();

      for (int i = d; i < d + av1; i++) {
        v += x1.getValue(x1.getItemCount() - (av1 - i)).doubleValue();
      }
      average1.add(new FixedMillisecond(timestamp), v / av1);

    } catch (Exception e) {
      // e.printStackTrace();
      // System.out.println(timestamp.toString());
    }
  }
 /** Some checks for the delete(int, int) method. */
 @Test
 public void testDelete3() {
   TimeSeries s1 = new TimeSeries("S1");
   s1.add(new Year(2011), 1.1);
   s1.add(new Year(2012), 2.2);
   s1.add(new Year(2013), 3.3);
   s1.add(new Year(2014), 4.4);
   s1.add(new Year(2015), 5.5);
   s1.add(new Year(2016), 6.6);
   s1.delete(2, 5);
   assertEquals(2, s1.getItemCount());
   assertEquals(new Year(2011), s1.getTimePeriod(0));
   assertEquals(new Year(2012), s1.getTimePeriod(1));
   assertEquals(1.1, s1.getMinY(), EPSILON);
   assertEquals(2.2, s1.getMaxY(), EPSILON);
 }
  /** Some checks for the removeAgedItems(long, boolean) method. */
  @Test
  public void testRemoveAgedItems2() {
    long y2006 = 1157087372534L; // milliseconds somewhere in 2006
    TimeSeries series = new TimeSeries("Test Series", Year.class);
    series.addChangeListener(this);
    assertEquals(Long.MAX_VALUE, series.getMaximumItemAge());
    assertEquals(Integer.MAX_VALUE, series.getMaximumItemCount());
    this.gotSeriesChangeEvent = false;

    // test empty series
    series.removeAgedItems(y2006, true);
    assertEquals(0, series.getItemCount());
    assertFalse(this.gotSeriesChangeEvent);

    // test a series with 1 item
    series.add(new Year(2004), 1.0);
    series.setMaximumItemAge(1);
    this.gotSeriesChangeEvent = false;
    series.removeAgedItems(new Year(2005).getMiddleMillisecond(), true);
    assertEquals(1, series.getItemCount());
    assertFalse(this.gotSeriesChangeEvent);
    series.removeAgedItems(y2006, true);
    assertEquals(0, series.getItemCount());
    assertTrue(this.gotSeriesChangeEvent);

    // test a series with two items
    series.setMaximumItemAge(2);
    series.add(new Year(2003), 1.0);
    series.add(new Year(2005), 2.0);
    assertEquals(2, series.getItemCount());
    this.gotSeriesChangeEvent = false;
    assertEquals(2, series.getItemCount());

    series.removeAgedItems(new Year(2005).getMiddleMillisecond(), true);
    assertEquals(2, series.getItemCount());
    assertFalse(this.gotSeriesChangeEvent);
    series.removeAgedItems(y2006, true);
    assertEquals(1, series.getItemCount());
    assertTrue(this.gotSeriesChangeEvent);
  }
  /** Some tests to ensure that the createCopy(int, int) method is functioning correctly. */
  @Test
  public void testCreateCopy2() {

    TimeSeries series = new TimeSeries("Series", Month.class);
    series.add(new Month(MonthConstants.JANUARY, 2003), 45.0);
    series.add(new Month(MonthConstants.FEBRUARY, 2003), 55.0);
    series.add(new Month(MonthConstants.JUNE, 2003), 35.0);
    series.add(new Month(MonthConstants.NOVEMBER, 2003), 85.0);
    series.add(new Month(MonthConstants.DECEMBER, 2003), 75.0);

    try {
      // copy just the first item...
      TimeSeries result1 = series.createCopy(0, 0);
      assertEquals(new Month(1, 2003), result1.getTimePeriod(0));

      // copy the first two items...
      result1 = series.createCopy(0, 1);
      assertEquals(new Month(2, 2003), result1.getTimePeriod(1));

      // copy the middle three items...
      result1 = series.createCopy(1, 3);
      assertEquals(new Month(2, 2003), result1.getTimePeriod(0));
      assertEquals(new Month(11, 2003), result1.getTimePeriod(2));

      // copy the last two items...
      result1 = series.createCopy(3, 4);
      assertEquals(new Month(11, 2003), result1.getTimePeriod(0));
      assertEquals(new Month(12, 2003), result1.getTimePeriod(1));

      // copy the last item...
      result1 = series.createCopy(4, 4);
      assertEquals(new Month(12, 2003), result1.getTimePeriod(0));
    } catch (CloneNotSupportedException e) {
      assertTrue(false);
    }

    // check negative first argument
    boolean pass = false;
    try {
      /* TimeSeries result = */ series.createCopy(-1, 1);
    } catch (IllegalArgumentException e) {
      pass = true;
    } catch (CloneNotSupportedException e) {
      pass = false;
    }
    assertTrue(pass);

    // check second argument less than first argument
    pass = false;
    try {
      /* TimeSeries result = */ series.createCopy(1, 0);
    } catch (IllegalArgumentException e) {
      pass = true;
    } catch (CloneNotSupportedException e) {
      pass = false;
    }
    assertTrue(pass);

    TimeSeries series2 = new TimeSeries("Series 2");
    try {
      TimeSeries series3 = series2.createCopy(99, 999);
      assertEquals(0, series3.getItemCount());
    } catch (CloneNotSupportedException e) {
      assertTrue(false);
    }
  }
  /**
   * Some tests to ensure that the createCopy(RegularTimePeriod, RegularTimePeriod) method is
   * functioning correctly.
   */
  @Test
  public void testCreateCopy1() {

    TimeSeries series = new TimeSeries("Series", Month.class);
    series.add(new Month(MonthConstants.JANUARY, 2003), 45.0);
    series.add(new Month(MonthConstants.FEBRUARY, 2003), 55.0);
    series.add(new Month(MonthConstants.JUNE, 2003), 35.0);
    series.add(new Month(MonthConstants.NOVEMBER, 2003), 85.0);
    series.add(new Month(MonthConstants.DECEMBER, 2003), 75.0);

    try {
      // copy a range before the start of the series data...
      TimeSeries result1 =
          series.createCopy(
              new Month(MonthConstants.NOVEMBER, 2002), new Month(MonthConstants.DECEMBER, 2002));
      assertEquals(0, result1.getItemCount());

      // copy a range that includes only the first item in the series...
      TimeSeries result2 =
          series.createCopy(
              new Month(MonthConstants.NOVEMBER, 2002), new Month(MonthConstants.JANUARY, 2003));
      assertEquals(1, result2.getItemCount());

      // copy a range that begins before and ends in the middle of the
      // series...
      TimeSeries result3 =
          series.createCopy(
              new Month(MonthConstants.NOVEMBER, 2002), new Month(MonthConstants.APRIL, 2003));
      assertEquals(2, result3.getItemCount());

      TimeSeries result4 =
          series.createCopy(
              new Month(MonthConstants.NOVEMBER, 2002), new Month(MonthConstants.DECEMBER, 2003));
      assertEquals(5, result4.getItemCount());

      TimeSeries result5 =
          series.createCopy(
              new Month(MonthConstants.NOVEMBER, 2002), new Month(MonthConstants.MARCH, 2004));
      assertEquals(5, result5.getItemCount());

      TimeSeries result6 =
          series.createCopy(
              new Month(MonthConstants.JANUARY, 2003), new Month(MonthConstants.JANUARY, 2003));
      assertEquals(1, result6.getItemCount());

      TimeSeries result7 =
          series.createCopy(
              new Month(MonthConstants.JANUARY, 2003), new Month(MonthConstants.APRIL, 2003));
      assertEquals(2, result7.getItemCount());

      TimeSeries result8 =
          series.createCopy(
              new Month(MonthConstants.JANUARY, 2003), new Month(MonthConstants.DECEMBER, 2003));
      assertEquals(5, result8.getItemCount());

      TimeSeries result9 =
          series.createCopy(
              new Month(MonthConstants.JANUARY, 2003), new Month(MonthConstants.MARCH, 2004));
      assertEquals(5, result9.getItemCount());

      TimeSeries result10 =
          series.createCopy(
              new Month(MonthConstants.MAY, 2003), new Month(MonthConstants.DECEMBER, 2003));
      assertEquals(3, result10.getItemCount());

      TimeSeries result11 =
          series.createCopy(
              new Month(MonthConstants.MAY, 2003), new Month(MonthConstants.MARCH, 2004));
      assertEquals(3, result11.getItemCount());

      TimeSeries result12 =
          series.createCopy(
              new Month(MonthConstants.DECEMBER, 2003), new Month(MonthConstants.DECEMBER, 2003));
      assertEquals(1, result12.getItemCount());

      TimeSeries result13 =
          series.createCopy(
              new Month(MonthConstants.DECEMBER, 2003), new Month(MonthConstants.MARCH, 2004));
      assertEquals(1, result13.getItemCount());

      TimeSeries result14 =
          series.createCopy(
              new Month(MonthConstants.JANUARY, 2004), new Month(MonthConstants.MARCH, 2004));
      assertEquals(0, result14.getItemCount());
    } catch (CloneNotSupportedException e) {
      assertTrue(false);
    }
  }