Exemple #1
0
        public void ThreeValueTest()
        {
            const decimal EXPECTED = 63m;

            decimal[] v  = new decimal[] { 127, 41, 2 };
            var       pg = new ProbabilityGenerator(EXPECTED, v);
            var       p  = pg.Calculate();
        }
Exemple #2
0
        public void TwoValueCloseLimitTest()
        {
            decimal[] vals  = new decimal[] { 100, 0 };
            var       pg    = new ProbabilityGenerator(.00001m, vals);
            var       probs = pg.Calculate();

            Assert.AreEqual(0.0000001m, probs[0]);
            Assert.AreEqual(0.9999999m, probs[1]);
        }
Exemple #3
0
        public void TwoValueSimpleTest()
        {
            decimal[] vals  = new decimal[] { 0, 100 };
            var       pg    = new ProbabilityGenerator(45, vals);
            var       probs = pg.Calculate();

            Assert.AreEqual(0.55m, probs[0]);
            Assert.AreEqual(0.45m, probs[1]);
        }
Exemple #4
0
        public void TwentyValueTest()
        {
            const decimal EXPECTED = 63m;

            decimal[] v = new decimal[] {
                5, 10, 10, 15, 15,
                15, 25, 25, 40, 50,
                50, 75, 75, 100, 125,
                150, 250, 500, 500, 1000
            };
            var pg = new ProbabilityGenerator(EXPECTED, v);
            var p  = pg.Calculate();
        }
Exemple #5
0
        public void LotsOfValuesTest()
        {
            var vals = new decimal[48];

            for (int i = 0; i < vals.Length; i++)
            {
                vals[i] = Rng.Default.Next();
            }

            var target = int.MaxValue / 2;
            var pg     = new ProbabilityGenerator(target, vals);
            var probs  = pg.Calculate();
        }
Exemple #6
0
        public void TwoValueTinyErrorTest()
        {
            const decimal EXPECTED = 63m;

            decimal[] v  = new decimal[] { 127, 41 };
            var       pg = new ProbabilityGenerator(EXPECTED, v);
            var       p  = pg.Calculate();

            var sum   = v[0] * p[0] + v[1] * p[1];
            var delta = Math.Abs(sum - EXPECTED);

            Assert.IsFalse(delta > 0.0000000000001m);
        }
Exemple #7
0
 public void AddProbabiltiyGenerator(ProbabilityGenerator generator)
 {
     this._generators.Add(generator ?? throw new ArgumentNullException(nameof(generator)));
 }
Exemple #8
0
 public void InvalidExpectedValueTest2()
 {
     decimal[] vals  = new decimal[] { -7, 100, 55, -450 };
     var       pg    = new ProbabilityGenerator(-500, vals);
     var       probs = pg.Calculate();
 }
Exemple #9
0
 public void InvalidExpectedValueTest()
 {
     decimal[] vals  = new decimal[] { 0, 100 };
     var       pg    = new ProbabilityGenerator(450, vals);
     var       probs = pg.Calculate();
 }