@@ -363,6 +363,52 @@ public final void testMergeEmptyToEmpty() {
363
363
}
364
364
}
365
365
366
+ public final void testMergeOtherBigger () {
367
+ try (T sort = build (SortOrder .ASC , 3 )) {
368
+ var values = threeSortedValues ();
369
+
370
+ collect (sort , values .get (0 ), 0 );
371
+ collect (sort , values .get (1 ), 0 );
372
+ collect (sort , values .get (2 ), 0 );
373
+
374
+ try (T other = build (SortOrder .ASC , 3 )) {
375
+ collect (other , values .get (0 ), 0 );
376
+ collect (other , values .get (1 ), 1 );
377
+ collect (other , values .get (2 ), 2 );
378
+
379
+ merge (sort , 0 , other , 0 );
380
+ merge (sort , 0 , other , 1 );
381
+ merge (sort , 0 , other , 2 );
382
+ }
383
+
384
+ assertBlock (sort , 0 , List .of (values .get (0 ), values .get (0 ), values .get (1 )));
385
+ }
386
+ }
387
+
388
+ public final void testMergeThisBigger () {
389
+ try (T sort = build (SortOrder .ASC , 3 )) {
390
+ var values = threeSortedValues ();
391
+
392
+ collect (sort , values .get (0 ), 0 );
393
+ collect (sort , values .get (1 ), 1 );
394
+ collect (sort , values .get (2 ), 2 );
395
+
396
+ try (T other = build (SortOrder .ASC , 3 )) {
397
+ collect (other , values .get (0 ), 0 );
398
+ collect (other , values .get (1 ), 0 );
399
+ collect (other , values .get (2 ), 0 );
400
+
401
+ merge (sort , 0 , other , 0 );
402
+ merge (sort , 1 , other , 0 );
403
+ merge (sort , 2 , other , 0 );
404
+ }
405
+
406
+ assertBlock (sort , 0 , List .of (values .get (0 ), values .get (0 ), values .get (1 )));
407
+ assertBlock (sort , 1 , List .of (values .get (0 ), values .get (1 ), values .get (1 )));
408
+ assertBlock (sort , 2 , values );
409
+ }
410
+ }
411
+
366
412
protected void assertBlock (T sort , int groupId , List <V > values ) {
367
413
var blockFactory = TestBlockFactory .getNonBreakingInstance ();
368
414
0 commit comments