|
@@ -86,36 +86,36 @@ import org.elasticsearch.search.aggregations.bucket.terms.ParsedLongTerms;
|
|
|
import org.elasticsearch.search.aggregations.bucket.terms.ParsedStringTerms;
|
|
|
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
|
|
|
import org.elasticsearch.search.aggregations.metrics.AvgAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedAvg;
|
|
|
import org.elasticsearch.search.aggregations.metrics.CardinalityAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedCardinality;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ExtendedStatsAggregationBuilder;
|
|
|
import org.elasticsearch.search.aggregations.metrics.GeoBoundsAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedGeoBounds;
|
|
|
import org.elasticsearch.search.aggregations.metrics.GeoCentroidAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedGeoCentroid;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.MaxAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedMax;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.MinAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedMin;
|
|
|
import org.elasticsearch.search.aggregations.metrics.InternalHDRPercentileRanks;
|
|
|
import org.elasticsearch.search.aggregations.metrics.InternalHDRPercentiles;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedHDRPercentileRanks;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedHDRPercentiles;
|
|
|
import org.elasticsearch.search.aggregations.metrics.InternalTDigestPercentileRanks;
|
|
|
import org.elasticsearch.search.aggregations.metrics.InternalTDigestPercentiles;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.MaxAggregationBuilder;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.MinAggregationBuilder;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedAvg;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedCardinality;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedExtendedStats;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedGeoBounds;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedGeoCentroid;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedHDRPercentileRanks;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedHDRPercentiles;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedMax;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedMin;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedScriptedMetric;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedStats;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedSum;
|
|
|
import org.elasticsearch.search.aggregations.metrics.ParsedTDigestPercentileRanks;
|
|
|
import org.elasticsearch.search.aggregations.metrics.ParsedTDigestPercentiles;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedScriptedMetric;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedTopHits;
|
|
|
+import org.elasticsearch.search.aggregations.metrics.ParsedValueCount;
|
|
|
import org.elasticsearch.search.aggregations.metrics.ScriptedMetricAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedStats;
|
|
|
import org.elasticsearch.search.aggregations.metrics.StatsAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ExtendedStatsAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedExtendedStats;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedSum;
|
|
|
import org.elasticsearch.search.aggregations.metrics.SumAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedTopHits;
|
|
|
import org.elasticsearch.search.aggregations.metrics.TopHitsAggregationBuilder;
|
|
|
-import org.elasticsearch.search.aggregations.metrics.ParsedValueCount;
|
|
|
import org.elasticsearch.search.aggregations.metrics.ValueCountAggregationBuilder;
|
|
|
import org.elasticsearch.search.aggregations.pipeline.InternalSimpleValue;
|
|
|
import org.elasticsearch.search.aggregations.pipeline.ParsedSimpleValue;
|
|
@@ -134,6 +134,7 @@ import org.elasticsearch.search.aggregations.pipeline.derivative.ParsedDerivativ
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -153,6 +154,16 @@ public abstract class InternalAggregationTestCase<T extends InternalAggregation>
|
|
|
public static final int DEFAULT_MAX_BUCKETS = 100000;
|
|
|
protected static final double TOLERANCE = 1e-10;
|
|
|
|
|
|
+ private static final Comparator<InternalAggregation> INTERNAL_AGG_COMPARATOR = (agg1, agg2) -> {
|
|
|
+ if (agg1.isMapped() == agg2.isMapped()) {
|
|
|
+ return 0;
|
|
|
+ } else if (agg1.isMapped() && agg2.isMapped() == false) {
|
|
|
+ return -1;
|
|
|
+ } else {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
private final NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry(
|
|
|
new SearchModule(Settings.EMPTY, false, emptyList()).getNamedWriteables());
|
|
|
|
|
@@ -239,6 +250,8 @@ public abstract class InternalAggregationTestCase<T extends InternalAggregation>
|
|
|
inputs.add(t);
|
|
|
toReduce.add(t);
|
|
|
}
|
|
|
+ // Sort aggs so that unmapped come last. This mimicks the behavior of InternalAggregations.reduce()
|
|
|
+ inputs.sort(INTERNAL_AGG_COMPARATOR);
|
|
|
ScriptService mockScriptService = mockScriptService();
|
|
|
MockBigArrays bigArrays = new MockBigArrays(new MockPageCacheRecycler(Settings.EMPTY), new NoneCircuitBreakerService());
|
|
|
if (randomBoolean() && toReduce.size() > 1) {
|