Sha256: c3a6748894e401275834b538f4bc9100078275f035f0e9542f53b397334dec7f
Contents?: true
Size: 673 Bytes
Versions: 3
Compression:
Stored size: 673 Bytes
Contents
# frozen_string_literal: true # Selects alternative with minimum count of participants # If all counts are even (i.e. all are minimum), samples from all possible alternatives module Split module Algorithms module BlockRandomization class << self def choose_alternative(experiment) minimum_participant_alternatives(experiment.alternatives).sample end private 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 end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
split-4.0.1 | lib/split/algorithms/block_randomization.rb |
split-4.0.0.pre2 | lib/split/algorithms/block_randomization.rb |
split-4.0.0.pre | lib/split/algorithms/block_randomization.rb |