|  | @@ -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;
 |