@@ -354,6 +354,26 @@ public void testMultiWeight() throws IOException {
354
354
"Use a script to combine multiple weights-per-doc into a single value." ));
355
355
}
356
356
357
+ public void testFormatter () throws IOException {
358
+ MultiValuesSourceFieldConfig valueConfig = new MultiValuesSourceFieldConfig .Builder ().setFieldName ("value_field" ).build ();
359
+ MultiValuesSourceFieldConfig weightConfig = new MultiValuesSourceFieldConfig .Builder ().setFieldName ("weight_field" ).build ();
360
+ WeightedAvgAggregationBuilder aggregationBuilder = new WeightedAvgAggregationBuilder ("_name" )
361
+ .value (valueConfig )
362
+ .weight (weightConfig )
363
+ .format ("0.00%" );
364
+ testCase (new MatchAllDocsQuery (), aggregationBuilder , iw -> {
365
+ iw .addDocument (Arrays .asList (new SortedNumericDocValuesField ("value_field" , 7 ),
366
+ new SortedNumericDocValuesField ("weight_field" , 1 )));
367
+ iw .addDocument (Arrays .asList (new SortedNumericDocValuesField ("value_field" , 2 ),
368
+ new SortedNumericDocValuesField ("weight_field" , 1 )));
369
+ iw .addDocument (Arrays .asList (new SortedNumericDocValuesField ("value_field" , 3 ),
370
+ new SortedNumericDocValuesField ("weight_field" , 1 )));
371
+ }, avg -> {
372
+ assertEquals (4 , avg .getValue (), 0 );
373
+ assertTrue (AggregationInspectionHelper .hasValue (avg ));
374
+ assertEquals ("400.00%" , avg .getValueAsString ());
375
+ });
376
+ }
357
377
358
378
public void testSummationAccuracy () throws IOException {
359
379
// Summing up a normal array and expect an accurate value
0 commit comments