This commit is contained in:
parent
7791e72626
commit
55b9dfdd52
|
@ -192,7 +192,7 @@ public class InternalStats extends InternalNumericMetricsAggregation.MultiValue
|
|||
builder.nullField(Fields.MIN);
|
||||
builder.nullField(Fields.MAX);
|
||||
builder.nullField(Fields.AVG);
|
||||
builder.nullField(Fields.SUM);
|
||||
builder.field(Fields.SUM, 0.0d);
|
||||
}
|
||||
otherStatsToXContent(builder, params);
|
||||
return builder;
|
||||
|
|
|
@ -19,6 +19,9 @@
|
|||
package org.elasticsearch.search.aggregations.metrics;
|
||||
|
||||
import org.elasticsearch.common.io.stream.Writeable;
|
||||
import org.elasticsearch.common.xcontent.ToXContent;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.json.JsonXContent;
|
||||
import org.elasticsearch.search.DocValueFormat;
|
||||
import org.elasticsearch.search.aggregations.ParsedAggregation;
|
||||
import org.elasticsearch.search.aggregations.metrics.stats.InternalStats;
|
||||
|
@ -26,6 +29,8 @@ import org.elasticsearch.search.aggregations.metrics.stats.ParsedStats;
|
|||
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
|
||||
import org.elasticsearch.test.InternalAggregationTestCase;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -153,5 +158,55 @@ public class InternalStatsTests extends InternalAggregationTestCase<InternalStat
|
|||
}
|
||||
return new InternalStats(name, count, sum, min, max, formatter, pipelineAggregators, metaData);
|
||||
}
|
||||
|
||||
public void testDoXContentBody() throws IOException {
|
||||
// count is greater than zero
|
||||
double min = randomDoubleBetween(-1000000, 1000000, true);
|
||||
double max = randomDoubleBetween(-1000000, 1000000, true);
|
||||
double sum = randomDoubleBetween(-1000000, 1000000, true);
|
||||
int count = randomIntBetween(1, 10);
|
||||
DocValueFormat format = randomNumericDocValueFormat();
|
||||
InternalStats internalStats = createInstance("stats", count, sum, min, max, format, Collections.emptyList(), null);
|
||||
XContentBuilder builder = JsonXContent.contentBuilder().prettyPrint();
|
||||
builder.startObject();
|
||||
internalStats.doXContentBody(builder, ToXContent.EMPTY_PARAMS);
|
||||
builder.endObject();
|
||||
|
||||
String expected = "{\n" +
|
||||
" \"count\" : " + count + ",\n" +
|
||||
" \"min\" : " + min + ",\n" +
|
||||
" \"max\" : " + max + ",\n" +
|
||||
" \"avg\" : " + internalStats.getAvg() + ",\n" +
|
||||
" \"sum\" : " + sum;
|
||||
if (format != DocValueFormat.RAW) {
|
||||
expected += ",\n"+
|
||||
" \"min_as_string\" : \"" + format.format(internalStats.getMin()) + "\",\n" +
|
||||
" \"max_as_string\" : \"" + format.format(internalStats.getMax()) + "\",\n" +
|
||||
" \"avg_as_string\" : \"" + format.format(internalStats.getAvg()) + "\",\n" +
|
||||
" \"sum_as_string\" : \"" + format.format(internalStats.getSum()) + "\"";
|
||||
}
|
||||
expected += "\n}";
|
||||
assertEquals(expected, builder.string());
|
||||
|
||||
// count is zero
|
||||
format = randomNumericDocValueFormat();
|
||||
min = 0.0;
|
||||
max = 0.0;
|
||||
sum = 0.0;
|
||||
count = 0;
|
||||
internalStats = createInstance("stats", count, sum, min, max, format, Collections.emptyList(), null);
|
||||
builder = JsonXContent.contentBuilder().prettyPrint();
|
||||
builder.startObject();
|
||||
internalStats.doXContentBody(builder, ToXContent.EMPTY_PARAMS);
|
||||
builder.endObject();
|
||||
|
||||
assertEquals("{\n" +
|
||||
" \"count\" : 0,\n" +
|
||||
" \"min\" : null,\n" +
|
||||
" \"max\" : null,\n" +
|
||||
" \"avg\" : null,\n" +
|
||||
" \"sum\" : 0.0\n" +
|
||||
"}", builder.string());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue