public void NonEmptyProbabilityDistribution_ChooseOne_ShouldReturnOne() { var random = new PredeterminedRandom(80, 30); var distribution = new StochasticProvider <string>(random) .Add("First", 50) .Add("Second", 40); distribution.GetOne().Should().Be("Second"); distribution.GetOne().Should().Be("First"); }
public void EmptyProbabilityDistribution_ChooseOne_ShouldDefault() { var distribution = new StochasticProvider <string>(new PredeterminedRandom(20)); var result = distribution.GetOne(); result.Should().BeNullOrEmpty(); }
private int GetSectionToEliminate(SortedSubsetChromosome chromosome) { var provider = new StochasticProvider <int>(this.Random); for (int s = 0; s < chromosome.Sections.Length; s++) { var section = chromosome.Sections[s]; var probability = chromosome.TotalCount / (double)section.Length; provider.Add(s, probability); } int chosen = provider.GetOne(); return(chosen); }