Accord.Tests.Statistics.BinomialDistributionTest.ConstructorTest C# (CSharp) Method

ConstructorTest() private method

private ConstructorTest ( ) : void
return void
        public void ConstructorTest()
        {
            var bin = new BinomialDistribution(trials: 16, probability: 0.12);

            double mean = bin.Mean;     // 1.92
            double median = bin.Median; // 2
            double var = bin.Variance;  // 1.6896
            double mode = bin.Mode;     // 2

            double cdf = bin.DistributionFunction(k: 0);    // 0.12933699143209909
            double pdf = bin.ProbabilityMassFunction(k: 1); // 0.28218979948821621
            double lpdf = bin.LogProbabilityMassFunction(k: 0); // -2.0453339441581582

            double ccdf = bin.ComplementaryDistributionFunction(k: 0); // 0.87066300856790091
            int icdf0 = bin.InverseDistributionFunction(p: 0.37); // 1
            int icdf1 = bin.InverseDistributionFunction(p: 0.50); // 2
            int icdf2 = bin.InverseDistributionFunction(p: 0.99); // 5
            int icdf3 = bin.InverseDistributionFunction(p: 0.999); // 7

            double hf = bin.HazardFunction(x: 0); // 1.3809523809523814
            double chf = bin.CumulativeHazardFunction(x: 0); // 0.86750056770472328

            string str = bin.ToString(CultureInfo.InvariantCulture); // "Binomial(x; n = 16, p = 0.12)"

            double[] probabilities = new double[10];
            for (int i = 0; i < probabilities.Length; i++)
                probabilities[i] = bin.ProbabilityMassFunction(i);

            Assert.AreEqual(1.92, mean);
            Assert.AreEqual(2, median);
            Assert.AreEqual(2, mode);
            Assert.AreEqual(1.6896, var);
            Assert.AreEqual(0.13850027875444251, chf, 1e-10);
            Assert.AreEqual(0.12933699143209909, cdf, 1e-10);
            Assert.AreEqual(0.28218979948821621, pdf, 1e-10);
            Assert.AreEqual(-2.0453339441581582, lpdf);
            Assert.AreEqual(0.14855000173354949, hf, 1e-10);
            Assert.AreEqual(0.87066300856790091, ccdf, 1e-10);
            Assert.AreEqual(1, icdf0);
            Assert.AreEqual(2, icdf1);
            Assert.AreEqual(5, icdf2);
            Assert.AreEqual(7, icdf3);
            Assert.AreEqual("Binomial(x; n = 16, p = 0.12)", str);



            var range1 = bin.GetRange(0.95);
            var range2 = bin.GetRange(0.99);
            var range3 = bin.GetRange(0.01);

            Assert.AreEqual(0.0, range1.Min);
            Assert.AreEqual(4.0, range1.Max);
            Assert.AreEqual(0.0, range2.Min);
            Assert.AreEqual(5.0, range2.Max);
            Assert.AreEqual(0.0, range3.Min);
            Assert.AreEqual(5.0, range3.Max);
        }