|
|
@@ -68,10 +68,10 @@ public class InternalTopHitsTests extends InternalAggregationTestCase<InternalTo
|
|
|
@Override
|
|
|
protected InternalTopHits createTestInstance(String name, Map<String, Object> metadata) {
|
|
|
if (randomBoolean()) {
|
|
|
- return createTestInstanceSortedByFields(name, metadata, ESTestCase::randomFloat,
|
|
|
+ return createTestInstanceSortedByFields(name, between(1, 40), metadata, ESTestCase::randomFloat,
|
|
|
randomSortFields(), InternalTopHitsTests::randomOfType);
|
|
|
}
|
|
|
- return createTestInstanceSortedScore(name, metadata, ESTestCase::randomFloat);
|
|
|
+ return createTestInstanceSortedScore(name, between(1, 40), metadata, ESTestCase::randomFloat);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -86,6 +86,7 @@ public class InternalTopHitsTests extends InternalAggregationTestCase<InternalTo
|
|
|
usedScores.add(score);
|
|
|
return score;
|
|
|
};
|
|
|
+ int requestedSize = between(1, 40);
|
|
|
Supplier<InternalTopHits> supplier;
|
|
|
if (randomBoolean()) {
|
|
|
SortField[] sortFields = randomSortFields();
|
|
|
@@ -95,16 +96,16 @@ public class InternalTopHitsTests extends InternalAggregationTestCase<InternalTo
|
|
|
usedSortFieldValues.add(value);
|
|
|
return value;
|
|
|
};
|
|
|
- supplier = () -> createTestInstanceSortedByFields(name, null, scoreSupplier, sortFields, sortFieldValueSuppier);
|
|
|
+ supplier = () -> createTestInstanceSortedByFields(name, requestedSize, null, scoreSupplier, sortFields, sortFieldValueSuppier);
|
|
|
} else {
|
|
|
- supplier = () -> createTestInstanceSortedScore(name, null, scoreSupplier);
|
|
|
+ supplier = () -> createTestInstanceSortedScore(name, requestedSize, null, scoreSupplier);
|
|
|
}
|
|
|
return Stream.generate(supplier).limit(size).collect(toList());
|
|
|
}
|
|
|
|
|
|
- private InternalTopHits createTestInstanceSortedByFields(String name, Map<String, Object> metadata,
|
|
|
+ private InternalTopHits createTestInstanceSortedByFields(String name, int requestedSize, Map<String, Object> metadata,
|
|
|
Supplier<Float> scoreSupplier, SortField[] sortFields, Function<SortField.Type, Object> sortFieldValueSupplier) {
|
|
|
- return createTestInstance(name, metadata, scoreSupplier,
|
|
|
+ return createTestInstance(name, metadata, scoreSupplier, requestedSize,
|
|
|
(docId, score) -> {
|
|
|
Object[] fields = new Object[sortFields.length];
|
|
|
for (int f = 0; f < sortFields.length; f++) {
|
|
|
@@ -117,15 +118,20 @@ public class InternalTopHitsTests extends InternalAggregationTestCase<InternalTo
|
|
|
sortFieldsComparator(sortFields));
|
|
|
}
|
|
|
|
|
|
- private InternalTopHits createTestInstanceSortedScore(String name, Map<String, Object> metadata, Supplier<Float> scoreSupplier) {
|
|
|
- return createTestInstance(name, metadata, scoreSupplier, ScoreDoc::new, TopDocs::new, scoreComparator());
|
|
|
+ private InternalTopHits createTestInstanceSortedScore(
|
|
|
+ String name,
|
|
|
+ int requestedSize,
|
|
|
+ Map<String, Object> metadata,
|
|
|
+ Supplier<Float> scoreSupplier
|
|
|
+ ) {
|
|
|
+ return createTestInstance(name, metadata, scoreSupplier, requestedSize, ScoreDoc::new, TopDocs::new, scoreComparator());
|
|
|
}
|
|
|
|
|
|
- private InternalTopHits createTestInstance(String name, Map<String, Object> metadata, Supplier<Float> scoreSupplier,
|
|
|
+ private InternalTopHits createTestInstance(String name, Map<String, Object> metadata, Supplier<Float> scoreSupplier,
|
|
|
+ int requestedSize,
|
|
|
BiFunction<Integer, Float, ScoreDoc> docBuilder,
|
|
|
BiFunction<TotalHits, ScoreDoc[], TopDocs> topDocsBuilder, Comparator<ScoreDoc> comparator) {
|
|
|
int from = 0;
|
|
|
- int requestedSize = between(1, 40);
|
|
|
int actualSize = between(0, requestedSize);
|
|
|
|
|
|
float maxScore = Float.NEGATIVE_INFINITY;
|