public void DiscreteDistributionBase()
        {
            DiscreteDistribution D = new DiscreteTestDistribution();

            double M0 = D.ExpectationValue(k => 1.0);

            Assert.IsTrue(TestUtilities.IsNearlyEqual(M0, 1.0));
            Assert.IsTrue(TestUtilities.IsNearlyEqual(M0, D.RawMoment(0)));

            double M1 = D.ExpectationValue(k => k);

            Assert.IsTrue(TestUtilities.IsNearlyEqual(M1, D.Mean));
            Assert.IsTrue(TestUtilities.IsNearlyEqual(M1, D.RawMoment(1)));

            double C2 = D.ExpectationValue(k => MoreMath.Sqr(k - M1));

            Assert.IsTrue(TestUtilities.IsNearlyEqual(C2, D.Variance));
            Assert.IsTrue(TestUtilities.IsNearlyEqual(C2, D.CentralMoment(2)));

            Assert.IsTrue(D.InverseLeftProbability(D.LeftInclusiveProbability(2)) == 2);
        }