module Split::Algorithms::BlockRandomization

Public Class Methods

choose_alternative(experiment) click to toggle source
# File lib/split/algorithms/block_randomization.rb, line 9
def choose_alternative(experiment)
  minimum_participant_alternatives(experiment.alternatives).sample
end

Private Class Methods

minimum_participant_alternatives(alternatives) click to toggle source
# File lib/split/algorithms/block_randomization.rb, line 15
def minimum_participant_alternatives(alternatives)
  alternatives_by_count = alternatives.group_by(&:participant_count)
  min_group = alternatives_by_count.min_by { |k, v| k }
  min_group.last
end