|
@@ -23,12 +23,17 @@ import org.HdrHistogram.DoubleHistogram;
|
|
|
import org.elasticsearch.common.io.stream.Writeable;
|
|
|
import org.elasticsearch.search.DocValueFormat;
|
|
|
import org.elasticsearch.search.aggregations.metrics.percentiles.InternalPercentilesTestCase;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.percentiles.Percentile;
|
|
|
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import static java.util.Collections.emptyList;
|
|
|
+import static java.util.Collections.emptyMap;
|
|
|
+
|
|
|
public class InternalHDRPercentilesTests extends InternalPercentilesTestCase<InternalHDRPercentiles> {
|
|
|
|
|
|
@Override
|
|
@@ -57,4 +62,24 @@ public class InternalHDRPercentilesTests extends InternalPercentilesTestCase<Int
|
|
|
protected Writeable.Reader<InternalHDRPercentiles> instanceReader() {
|
|
|
return InternalHDRPercentiles::new;
|
|
|
}
|
|
|
+
|
|
|
+ public void testIterator() {
|
|
|
+ final double[] percents = randomPercents();
|
|
|
+ final double[] values = new double[frequently() ? randomIntBetween(1, 10) : 0];
|
|
|
+ for (int i = 0; i < values.length; ++i) {
|
|
|
+ values[i] = randomDouble();
|
|
|
+ }
|
|
|
+
|
|
|
+ InternalHDRPercentiles aggregation =
|
|
|
+ createTestInstance("test", emptyList(), emptyMap(), false, randomNumericDocValueFormat(), percents, values);
|
|
|
+
|
|
|
+ Iterator<Percentile> iterator = aggregation.iterator();
|
|
|
+ for (double percent : percents) {
|
|
|
+ assertTrue(iterator.hasNext());
|
|
|
+
|
|
|
+ Percentile percentile = iterator.next();
|
|
|
+ assertEquals(percent, percentile.getPercent(), 0.0d);
|
|
|
+ assertEquals(aggregation.percentile(percent), percentile.getValue(), 0.0d);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|