@Override public InternalMax doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { double max = Double.NEGATIVE_INFINITY; for (InternalAggregation aggregation : aggregations) { max = Math.max(max, ((InternalMax) aggregation).max); } return new InternalMax(name, max, format, pipelineAggregators(), getMetaData()); }
return Stream.empty(); long lastIssueDate = (long) ((InternalMax) branchBucket.getAggregations().get("maxFuncCreatedAt")).getValue(); return Stream.of(new ProjectStatistics(branchBucket.getKeyAsString(), count, lastIssueDate)); }))
@Override public InternalAggregation buildEmptyAggregation() { return new InternalMax(name, Double.NEGATIVE_INFINITY, formatter, pipelineAggregators(), metaData()); }
@Override public InternalMax readResult(StreamInput in) throws IOException { InternalMax result = new InternalMax(); result.readFrom(in); return result; } };
@Override public InternalAggregation buildAggregation(long bucket) { if (valuesSource == null || bucket >= maxes.size()) { return buildEmptyAggregation(); } return new InternalMax(name, maxes.get(bucket), formatter, pipelineAggregators(), metaData()); }
@Override public InternalMax doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { double max = Double.NEGATIVE_INFINITY; for (InternalAggregation aggregation : aggregations) { max = Math.max(max, ((InternalMax) aggregation).max); } return new InternalMax(name, max, valueFormatter, pipelineAggregators(), getMetaData()); }
@Override public InternalAggregation buildEmptyAggregation() { return new InternalMax(name, Double.NEGATIVE_INFINITY, formatter, pipelineAggregators(), metaData()); }
/** * Gets the aggregated result. * * @param internalAggs * the internal aggs * @param identifier * the identifier * @param exp * the exp * @return the aggregated result */ private Object getAggregatedResult(InternalAggregations internalAggs, String identifier, Expression exp) { switch (identifier) { case Expression.MIN: return (((InternalMin) internalAggs.get(exp.toParsedText())).getValue()); case Expression.MAX: return (((InternalMax) internalAggs.get(exp.toParsedText())).getValue()); case Expression.AVG: return (((InternalAvg) internalAggs.get(exp.toParsedText())).getValue()); case Expression.SUM: return (((InternalSum) internalAggs.get(exp.toParsedText())).getValue()); case Expression.COUNT: return (((InternalValueCount) internalAggs.get(exp.toParsedText())).getValue()); } throw new KunderaException("No support for " + identifier + " aggregation."); }
@Override public InternalMax doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { double max = Double.NEGATIVE_INFINITY; for (InternalAggregation aggregation : aggregations) { max = Math.max(max, ((InternalMax) aggregation).max); } return new InternalMax(name, max, format, pipelineAggregators(), getMetaData()); }
@Override public InternalAggregation buildEmptyAggregation() { return new InternalMax(name, Double.NEGATIVE_INFINITY, formatter, pipelineAggregators(), metaData()); }
@Override protected final void assertReduced(T reduced, List<T> inputs) { assertEquals(inputs.stream().mapToLong(InternalSingleBucketAggregation::getDocCount).sum(), reduced.getDocCount()); if (hasInternalMax) { double expected = inputs.stream().mapToDouble(i -> { InternalMax max = i.getAggregations().get("max"); return max.getValue(); }).max().getAsDouble(); InternalMax reducedMax = reduced.getAggregations().get("max"); assertEquals(expected, reducedMax.getValue(), 0); } if (hasInternalMin) { double expected = inputs.stream().mapToDouble(i -> { InternalMin min = i.getAggregations().get("min"); return min.getValue(); }).min().getAsDouble(); InternalMin reducedMin = reduced.getAggregations().get("min"); assertEquals(expected, reducedMin.getValue(), 0); } extraAssertReduced(reduced, inputs); }
@Override public InternalMax doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { double max = Double.NEGATIVE_INFINITY; for (InternalAggregation aggregation : aggregations) { max = Math.max(max, ((InternalMax) aggregation).max); } return new InternalMax(name, max, format, pipelineAggregators(), getMetaData()); }
@Override public InternalAggregation buildEmptyAggregation() { return new InternalMax(name, Double.NEGATIVE_INFINITY, formatter, pipelineAggregators(), metaData()); }
return Stream.empty(); long lastIssueDate = (long) ((InternalMax) branchBucket.getAggregations().get("maxFuncCreatedAt")).getValue(); return Stream.of(new ProjectStatistics(branchBucket.getKeyAsString(), count, lastIssueDate)); }))
@Override public InternalMax doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) { double max = Double.NEGATIVE_INFINITY; for (InternalAggregation aggregation : aggregations) { max = Math.max(max, ((InternalMax) aggregation).max); } return new InternalMax(name, max, format, pipelineAggregators(), getMetaData()); }
@Override public void setUp() throws Exception { super.setUp(); hasInternalMax = randomBoolean(); hasInternalMin = randomBoolean(); subAggregationsSupplier = () -> { List<InternalAggregation> aggs = new ArrayList<>(); if (hasInternalMax) { aggs.add(new InternalMax("max", randomDouble(), randomNumericDocValueFormat(), emptyList(), emptyMap())); } if (hasInternalMin) { aggs.add(new InternalMin("min", randomDouble(), randomNumericDocValueFormat(), emptyList(), emptyMap())); } return new InternalAggregations(aggs); }; }
currentRow.set(metricCol.getIndex(), ((InternalCardinality) agg).getValue()); } else if (agg instanceof InternalMax) { currentRow.set(metricCol.getIndex(), ((InternalMax) agg).getValue()); } else if (agg instanceof InternalMin) { currentRow.set(metricCol.getIndex(), ((InternalMin) agg).getValue());
@Override public InternalAggregation buildAggregation(long bucket) { if (valuesSource == null || bucket >= maxes.size()) { return buildEmptyAggregation(); } return new InternalMax(name, maxes.get(bucket), formatter, pipelineAggregators(), metaData()); }
/** * Gets the aggregated result. * * @param internalAggs * the internal aggs * @param identifier * the identifier * @param exp * the exp * @return the aggregated result */ private Object getAggregatedResult(InternalAggregations internalAggs, String identifier, Expression exp) { switch (identifier) { case Expression.MIN: return (((InternalMin) internalAggs.get(exp.toParsedText())).getValue()); case Expression.MAX: return (((InternalMax) internalAggs.get(exp.toParsedText())).getValue()); case Expression.AVG: return (((InternalAvg) internalAggs.get(exp.toParsedText())).getValue()); case Expression.SUM: return (((InternalSum) internalAggs.get(exp.toParsedText())).getValue()); case Expression.COUNT: return (((InternalValueCount) internalAggs.get(exp.toParsedText())).getValue()); } throw new KunderaException("No support for " + identifier + " aggregation."); }
@Override public InternalAggregation buildAggregation(long bucket) { if (valuesSource == null || bucket >= maxes.size()) { return buildEmptyAggregation(); } return new InternalMax(name, maxes.get(bucket), formatter, pipelineAggregators(), metaData()); }