use of org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range in project elasticsearch by elastic.
the class RangeTests method createTestAggregatorBuilder.
@Override
protected RangeAggregationBuilder createTestAggregatorBuilder() {
int numRanges = randomIntBetween(1, 10);
RangeAggregationBuilder factory = new RangeAggregationBuilder("foo");
for (int i = 0; i < numRanges; i++) {
String key = null;
if (randomBoolean()) {
key = randomAsciiOfLengthBetween(1, 20);
}
double from = randomBoolean() ? Double.NEGATIVE_INFINITY : randomIntBetween(Integer.MIN_VALUE, Integer.MAX_VALUE - 1000);
double to = randomBoolean() ? Double.POSITIVE_INFINITY : (Double.isInfinite(from) ? randomIntBetween(Integer.MIN_VALUE, Integer.MAX_VALUE) : randomIntBetween((int) from, Integer.MAX_VALUE));
if (randomBoolean()) {
factory.addRange(new Range(key, from, to));
} else {
String fromAsStr = Double.isInfinite(from) ? null : String.valueOf(from);
String toAsStr = Double.isInfinite(to) ? null : String.valueOf(to);
factory.addRange(new Range(key, fromAsStr, toAsStr));
}
}
factory.field(INT_FIELD_NAME);
if (randomBoolean()) {
factory.format("###.##");
}
if (randomBoolean()) {
factory.keyed(randomBoolean());
}
if (randomBoolean()) {
factory.missing(randomIntBetween(0, 10));
}
return factory;
}
use of org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range in project elasticsearch by elastic.
the class DateRangeTests method createTestAggregatorBuilder.
@Override
protected DateRangeAggregationBuilder createTestAggregatorBuilder() {
int numRanges = randomIntBetween(1, 10);
DateRangeAggregationBuilder factory = new DateRangeAggregationBuilder("foo");
for (int i = 0; i < numRanges; i++) {
String key = null;
if (randomBoolean()) {
key = randomAsciiOfLengthBetween(1, 20);
}
double from = randomBoolean() ? Double.NEGATIVE_INFINITY : randomIntBetween(Integer.MIN_VALUE, Integer.MAX_VALUE - 1000);
double to = randomBoolean() ? Double.POSITIVE_INFINITY : (Double.isInfinite(from) ? randomIntBetween(Integer.MIN_VALUE, Integer.MAX_VALUE) : randomIntBetween((int) from, Integer.MAX_VALUE));
if (randomBoolean()) {
factory.addRange(new Range(key, from, to));
} else {
String fromAsStr = Double.isInfinite(from) ? null : String.valueOf(from);
String toAsStr = Double.isInfinite(to) ? null : String.valueOf(to);
factory.addRange(new Range(key, fromAsStr, toAsStr));
}
}
factory.field(INT_FIELD_NAME);
if (randomBoolean()) {
factory.format("###.##");
}
if (randomBoolean()) {
factory.keyed(randomBoolean());
}
if (randomBoolean()) {
factory.missing(randomIntBetween(0, 10));
}
if (randomBoolean()) {
factory.timeZone(randomDateTimeZone());
}
return factory;
}
use of org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range in project elasticsearch by elastic.
the class AbstractRangeBuilder method innerWriteTo.
@Override
protected void innerWriteTo(StreamOutput out) throws IOException {
out.writeVInt(ranges.size());
for (Range range : ranges) {
range.writeTo(out);
}
out.writeBoolean(keyed);
}
Aggregations