summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/InternalPercentilesTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/InternalPercentilesTestCase.java')
-rw-r--r--core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/InternalPercentilesTestCase.java44
1 files changed, 12 insertions, 32 deletions
diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/InternalPercentilesTestCase.java b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/InternalPercentilesTestCase.java
index 0cfa07538e..404c033f11 100644
--- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/InternalPercentilesTestCase.java
+++ b/core/src/test/java/org/elasticsearch/search/aggregations/metrics/percentiles/InternalPercentilesTestCase.java
@@ -19,43 +19,23 @@
package org.elasticsearch.search.aggregations.metrics.percentiles;
-import org.elasticsearch.search.DocValueFormat;
import org.elasticsearch.search.aggregations.InternalAggregation;
-import org.elasticsearch.search.aggregations.InternalAggregationTestCase;
-import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
-import org.junit.Before;
+import org.elasticsearch.search.aggregations.ParsedAggregation;
-import java.util.List;
-import java.util.Map;
-
-public abstract class InternalPercentilesTestCase<T extends InternalAggregation> extends InternalAggregationTestCase<T> {
-
- private double[] percents;
-
- @Before
- public void init() {
- percents = randomPercents();
- }
+public abstract class InternalPercentilesTestCase<T extends InternalAggregation & Percentiles> extends AbstractPercentilesTestCase<T> {
@Override
- protected T createTestInstance(String name, List<PipelineAggregator> pipelineAggregators, Map<String, Object> metaData) {
- int numValues = randomInt(100);
- double[] values = new double[numValues];
- for (int i = 0; i < numValues; ++i) {
- values[i] = randomDouble();
+ protected final void assertFromXContent(T aggregation, ParsedAggregation parsedAggregation) {
+ assertTrue(parsedAggregation instanceof Percentiles);
+ Percentiles parsedPercentiles = (Percentiles) parsedAggregation;
+
+ for (Percentile percentile : aggregation) {
+ Double percent = percentile.getPercent();
+ assertEquals(aggregation.percentile(percent), parsedPercentiles.percentile(percent), 0);
+ assertEquals(aggregation.percentileAsString(percent), parsedPercentiles.percentileAsString(percent));
}
- return createTestInstance(name, pipelineAggregators, metaData, randomBoolean(), DocValueFormat.RAW, percents, values);
- }
-
- protected abstract T createTestInstance(String name, List<PipelineAggregator> pipelineAggregators, Map<String, Object> metaData,
- boolean keyed, DocValueFormat format, double[] percents, double[] values);
- private static double[] randomPercents() {
- List<Double> randomCdfValues = randomSubsetOf(randomIntBetween(1, 7), 0.01d, 0.05d, 0.25d, 0.50d, 0.75d, 0.95d, 0.99d);
- double[] percents = new double[randomCdfValues.size()];
- for (int i = 0; i < randomCdfValues.size(); i++) {
- percents[i] = randomCdfValues.get(i);
- }
- return percents;
+ Class<? extends ParsedPercentiles> parsedClass = implementationClass();
+ assertTrue(parsedClass != null && parsedClass.isInstance(parsedAggregation));
}
}