Sha256: 99c81e09c01e32107af4bcb94d661f2623912039810ab5d7b208e4c84c8e0eca
Contents?: true
Size: 875 Bytes
Versions: 1
Compression:
Stored size: 875 Bytes
Contents
class ParallelTests class Grouper def self.in_groups(items, num_groups) [].tap do |groups| while ! items.empty? (0...num_groups).map do |group_number| groups[group_number] ||= [] groups[group_number] << items.shift end end end.map(&:sort) end def self.in_even_groups_by_size(items_with_sizes, num_groups) items_with_size = smallest_first(items_with_sizes) groups = Array.new(num_groups){{:items => [], :size => 0}} items_with_size.each do |item, size| # always add to smallest group smallest = groups.sort_by{|g| g[:size] }.first smallest[:items] << item smallest[:size] += size end groups.map{|g| g[:items].sort } end def self.smallest_first(files) files.sort_by{|item, size| size }.reverse end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
parallel_tests-0.6.7 | lib/parallel_tests/grouper.rb |