private static <InputT, AccumT, OutputT> void checkCombineFnShardsMultipleOrders( CombineFn<InputT, AccumT, OutputT> fn, List<? extends Iterable<InputT>> shards, Matcher<? super OutputT> matcher) { checkCombineFnShardsSingleMerge(fn, shards, matcher); checkCombineFnShardsWithEmptyAccumulators(fn, shards, matcher); checkCombineFnShardsIncrementalMerging(fn, shards, matcher); Collections.shuffle(shards); checkCombineFnShardsSingleMerge(fn, shards, matcher); checkCombineFnShardsWithEmptyAccumulators(fn, shards, matcher); checkCombineFnShardsIncrementalMerging(fn, shards, matcher); }