class RSpec::Core::Bisect::SubsetEnumerator

@private
list each repeatedly in order to our minimal repro case.
size of the total list, so that hopefully we can discard half the
Enumerates each subset of the given list of ids that is half the

def each

def each
  yielded     = Set.new
  slice_size  = subset_size
  combo_count = 1
  while slice_size > 0
    @ids.each_slice(slice_size).to_a.combination(combo_count) do |combos|
      subset = combos.flatten
      next if yielded.include?(subset)
      yield subset
      yielded << subset
    end
    slice_size  /= 2
    combo_count *= 2
  end
end

def initialize(ids)

def initialize(ids)
  @ids = ids
end

def subset_size

def subset_size
  @subset_size ||= (@ids.size / 2.0).ceil
end