Sha256: d9d1d7ce6b304f29f17862ac3edf239f271787d9e07f7aa5ec5e543233bba5df
Contents?: true
Size: 682 Bytes
Versions: 3
Compression:
Stored size: 682 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.4 | lib/split/algorithms/block_randomization.rb |
split-4.0.3 | lib/split/algorithms/block_randomization.rb |
split-4.0.2 | lib/split/algorithms/block_randomization.rb |