public static IDictionary <int, double> ConversionRateByAlternative(this Experiment experiment) { var participants = experiment.ParticipantsByAlternative(); var converted = experiment.ConvertedByAlternative(); var hash = experiment.EmptyHash <double>(); for (var i = 1; i <= experiment.Alternatives.Count(); i++) { var conversionRate = participants[i] > 0 ? (converted[i] / (double)participants[i]) * 100 : 0; hash[i] = conversionRate; } return(hash); }
public static IDictionary <int, int> ConversionsByAlternative(this Experiment experiment) { var hash = experiment.EmptyHash <int>(); foreach (var participant in experiment.Participants) { if (!participant.Shown.HasValue) { continue; } hash[participant.Shown.Value] += participant.Conversions; } return(hash); }