public void Test_Discrete_Distribution_Creation() { DiscreteDistribution <Test> distribution = new DiscreteDistribution <Test>(); distribution.Add(Test.One, .1); distribution.Add(Test.Two, .2); distribution.Add(Test.Three, .3); distribution.Add(Test.Four, .4); Dictionary <Test, double> items = new Dictionary <Test, double>(); for (int i = 0; i < 1000000; i++) { items.AddOrUpdate(distribution.Sample(), d => d + 1); } var sum = items.Select(kv => kv.Value).Sum(); foreach (var t in items.Keys.ToArray()) { items[t] /= sum; } Assert.Equal(.1, items[Test.One], 2); Assert.Equal(.2, items[Test.Two], 2); Assert.Equal(.3, items[Test.Three], 2); Assert.Equal(.4, items[Test.Four], 2); }
private void InitDays() { _dayOfWeek.Add(DayOfWeek.Sunday, 1); _dayOfWeek.Add(DayOfWeek.Monday, 1); _dayOfWeek.Add(DayOfWeek.Tuesday, 1); _dayOfWeek.Add(DayOfWeek.Wednesday, 1); _dayOfWeek.Add(DayOfWeek.Thursday, 1); _dayOfWeek.Add(DayOfWeek.Friday, 1); _dayOfWeek.Add(DayOfWeek.Saturday, 1); }
public NameText() { // init first letter distribution _firstLetters = new DiscreteDistribution <string>(); _firstLetters.Add("a", 0.11602); _firstLetters.Add("b", 0.04702); _firstLetters.Add("c", 0.03511); _firstLetters.Add("d", 0.0267); _firstLetters.Add("e", 0.02007); _firstLetters.Add("f", 0.03779); _firstLetters.Add("g", 0.0195); _firstLetters.Add("h", 0.07232); _firstLetters.Add("i", 0.06286); _firstLetters.Add("j", 0.00597); _firstLetters.Add("k", 0.0059); _firstLetters.Add("l", 0.02705); _firstLetters.Add("m", 0.04374); _firstLetters.Add("n", 0.02365); _firstLetters.Add("o", 0.06264); _firstLetters.Add("p", 0.02545); _firstLetters.Add("q", 0.00173); _firstLetters.Add("r", 0.01653); _firstLetters.Add("s", 0.07755); _firstLetters.Add("t", 0.16671); _firstLetters.Add("u", 0.01487); _firstLetters.Add("v", 0.00649); _firstLetters.Add("w", 0.06753); _firstLetters.Add("x", 0.00037); _firstLetters.Add("y", 0.0162); _firstLetters.Add("z", 0.00034); // init letter distribution _letters = new DiscreteDistribution <string>(); _letters.Add("a", 0.08167); _letters.Add("b", 0.01492); _letters.Add("c", 0.02782); _letters.Add("d", 0.04253); _letters.Add("e", 0.12702); _letters.Add("f", 0.02228); _letters.Add("g", 0.02015); _letters.Add("h", 0.06094); _letters.Add("i", 0.06966); _letters.Add("j", 0.00153); _letters.Add("k", 0.00772); _letters.Add("l", 0.04025); _letters.Add("m", 0.02406); _letters.Add("n", 0.06749); _letters.Add("o", 0.07507); _letters.Add("p", 0.01929); _letters.Add("q", 0.00095); _letters.Add("r", 0.05987); _letters.Add("s", 0.06327); _letters.Add("t", 0.09056); _letters.Add("u", 0.02758); _letters.Add("v", 0.00978); _letters.Add("w", 0.0236); _letters.Add("x", 0.0015); _letters.Add("y", 0.01974); _letters.Add("z", 0.00074); // vowels _vowels = new[] { 'a', 'e', 'i', 'o', 'u' }; }
private void InitHours() { _hours.Add(0, 1); _hours.Add(1, 1); _hours.Add(2, 1); _hours.Add(3, 1); _hours.Add(4, 1); _hours.Add(5, 1); _hours.Add(6, 1); _hours.Add(7, 1); _hours.Add(8, 1); _hours.Add(9, 1); _hours.Add(10, 1); _hours.Add(11, 1); _hours.Add(12, 1); _hours.Add(13, 1); _hours.Add(14, 1); _hours.Add(15, 1); _hours.Add(16, 1); _hours.Add(17, 1); _hours.Add(18, 1); _hours.Add(19, 1); _hours.Add(20, 1); _hours.Add(21, 1); _hours.Add(22, 1); _hours.Add(23, 1); }
private void InitMonths() { _months.Add(1, 1); _months.Add(2, 1); _months.Add(3, 1); _months.Add(4, 1); _months.Add(5, 1); _months.Add(6, 1); _months.Add(7, 1); _months.Add(8, 1); _months.Add(9, 1); _months.Add(10, 1); _months.Add(11, 1); _months.Add(12, 1); }