From f789ea2f82bb108450c2dcb6e059ff8c4a81636e Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Thu, 6 Dec 2018 10:26:55 +0100 Subject: [PATCH] fix integration test after change in ml-cpp#327 --- .../xpack/ml/integration/ForecastIT.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java b/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java index c80ec7048204f..205bdad7e1010 100644 --- a/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java +++ b/x-pack/plugin/ml/qa/native-multi-node-tests/src/test/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java @@ -41,7 +41,6 @@ public void tearDownData() throws Exception { cleanUp(); } - @AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/36258") public void testSingleSeries() throws Exception { Detector.Builder detector = new Detector.Builder("mean", "value"); @@ -85,6 +84,9 @@ public void testSingleSeries() throws Exception { Bucket lastBucket = buckets.get(buckets.size() - 1); long lastBucketTime = lastBucket.getTimestamp().getTime(); + // bucket results (dependent on feature) are returned for the middle of a bucket, see https://github.com/elastic/ml-cpp/pull/327 + long bucketShift = bucketSpan.getMillis() / 2; + // Now let's verify forecasts double expectedForecastValue = 20.0; @@ -101,10 +103,10 @@ public void testSingleSeries() throws Exception { List forecasts = getForecasts(job.getId(), forecastDefaultDurationDefaultExpiry); assertThat(forecastDefaultDurationDefaultExpiry.getRecordCount(), equalTo(24L)); assertThat(forecasts.size(), equalTo(24)); - assertThat(forecasts.get(0).getTimestamp().getTime(), equalTo(lastBucketTime)); + assertThat(forecasts.get(0).getTimestamp().getTime(), equalTo(bucketShift + lastBucketTime)); for (int i = 0; i < forecasts.size(); i++) { Forecast forecast = forecasts.get(i); - assertThat(forecast.getTimestamp().getTime(), equalTo(lastBucketTime + i * bucketSpan.getMillis())); + assertThat(forecast.getTimestamp().getTime(), equalTo(bucketShift + lastBucketTime + i * bucketSpan.getMillis())); assertThat(forecast.getBucketSpan(), equalTo(bucketSpan.getSeconds())); assertThat(forecast.getForecastPrediction(), closeTo(expectedForecastValue, 0.01)); } @@ -116,10 +118,10 @@ public void testSingleSeries() throws Exception { List forecasts = getForecasts(job.getId(), forecastDuration1HourNoExpiry); assertThat(forecastDuration1HourNoExpiry.getRecordCount(), equalTo(1L)); assertThat(forecasts.size(), equalTo(1)); - assertThat(forecasts.get(0).getTimestamp().getTime(), equalTo(lastBucketTime)); + assertThat(forecasts.get(0).getTimestamp().getTime(), equalTo(bucketShift + lastBucketTime)); for (int i = 0; i < forecasts.size(); i++) { Forecast forecast = forecasts.get(i); - assertThat(forecast.getTimestamp().getTime(), equalTo(lastBucketTime + i * bucketSpan.getMillis())); + assertThat(forecast.getTimestamp().getTime(), equalTo(bucketShift + lastBucketTime + i * bucketSpan.getMillis())); assertThat(forecast.getBucketSpan(), equalTo(bucketSpan.getSeconds())); assertThat(forecast.getForecastPrediction(), closeTo(expectedForecastValue, 0.01)); } @@ -133,10 +135,10 @@ public void testSingleSeries() throws Exception { List forecasts = getForecasts(job.getId(), forecastDuration3HoursExpiresIn24Hours); assertThat(forecastDuration3HoursExpiresIn24Hours.getRecordCount(), equalTo(3L)); assertThat(forecasts.size(), equalTo(3)); - assertThat(forecasts.get(0).getTimestamp().getTime(), equalTo(lastBucketTime)); + assertThat(forecasts.get(0).getTimestamp().getTime(), equalTo(bucketShift + lastBucketTime)); for (int i = 0; i < forecasts.size(); i++) { Forecast forecast = forecasts.get(i); - assertThat(forecast.getTimestamp().getTime(), equalTo(lastBucketTime + i * bucketSpan.getMillis())); + assertThat(forecast.getTimestamp().getTime(), equalTo(bucketShift + lastBucketTime + i * bucketSpan.getMillis())); assertThat(forecast.getBucketSpan(), equalTo(bucketSpan.getSeconds())); assertThat(forecast.getForecastPrediction(), closeTo(expectedForecastValue, 0.01)); }