@Test
public void testETSPredictor() {
final Double[] values = { 1.0, 2.0, 3.0, 4.0 };
final List<Double> expectedValues = new ArrayList<Double>(values.length);
for (final Double curVal : values) {
expectedValues.add(curVal);
}
final TimeSeries<Double> ts =
new TimeSeries<Double>(ETSForecasterTest.START_TIME, TimeUnit.NANOSECONDS, ETSForecasterTest.DELTA_TIME_MILLIS, TimeUnit.MILLISECONDS);
ts.appendAll(values);
final ETSForecaster forecaster = new ETSForecaster(ts, ETSForecasterTest.CONFIDENCE_LEVEL);
final IForecastResult forecast = forecaster.forecast(ETSForecasterTest.STEPS);
final ITimeSeries<Double> forecastSeries = forecast.getForecast();
final double expectedForecast = 4.0;
this.assertEqualsWithTolerance("Unexpected forecast value", expectedForecast, 0.1, AbstractKiekerRTest.getTsPoint(forecastSeries));
final ITimeSeries<Double> upperSeries = forecast.getUpper();
final double expectedUpper = 5.424480;
this.assertEqualsWithTolerance("Unexpected upper value", expectedUpper, 0.1, AbstractKiekerRTest.getTsPoint(upperSeries));
final ITimeSeries<Double> lowerSeries = forecast.getLower();
final double expectedLower = 2.57531997;
this.assertEqualsWithTolerance("Unexpected lower value", expectedLower, 0.1, AbstractKiekerRTest.getTsPoint(lowerSeries));
}