32 public function buildSuites( array $testDescriptors,
int $groups ): array {
33 $suites = array_fill( 0, $groups, [
"list" => [],
"time" => 0 ] );
35 usort( $testDescriptors, [ self::class,
"sortByTimeDescending" ] );
36 foreach ( $testDescriptors as $testDescriptor ) {
37 if ( !$testDescriptor->getFilename() ) {
45 if ( $testDescriptor->getDuration() === 0 ) {
48 $nextSuite = $roundRobin;
49 $roundRobin = ( $roundRobin + 1 ) % $groups;
54 $nextSuite = self::smallestGroup( $suites );
56 $suites[$nextSuite][
"list"][] = $testDescriptor->getFilename();
57 $suites[$nextSuite][
"time"] += $testDescriptor->getDuration();