Example #1
0
        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);
        }
Example #2
0
 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);
 }
Example #3
0
        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' };
        }
Example #4
0
 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);
 }
Example #5
0
 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);
 }