@Test
public void testForecast() {

    val metricDef = TestObjectMother.metricDefinition();
    val secondBase = Instant.now().getEpochSecond();
    var secondOffset = 0;
    for (val testRow : testData) {
        val metricData = new MetricData(metricDef, testRow.getObservation(), secondBase + secondOffset);
        val actual = forecasterUnderTest.forecast(metricData, testRow.getPointForecast());
        assertEquals(testRow.getUpperStrong(), actual.getUpperStrong(), TOLERANCE);
        assertEquals(testRow.getUpperWeak(), actual.getUpperWeak(), TOLERANCE);
        assertEquals(testRow.getLowerWeak(), actual.getLowerWeak(), TOLERANCE);
        assertEquals(testRow.getLowerStrong(), actual.getLowerStrong(), TOLERANCE);
    }
}