public void IntervalTest()
        {
            var target = new UniformContinuousDistribution(-10, 10);

            for (int k = -15; k < 15; k++)
            {
                double a = target.DistributionFunction(k);
                double b = target.DistributionFunction(k + 1);
                double c = b - a;

                double actual = target.DistributionFunction(k, k + 1);
                Assert.AreEqual(c, actual, 1e-15);
            }
        }
示例#2
0
        public void IntervalTest()
        {
            var target = new UniformContinuousDistribution(-10, 10);

            for (int k = -15; k < 15; k++)
            {
                double expected = target.ProbabilityDensityFunction(k);

                double a = target.DistributionFunction(k);
                double b = target.DistributionFunction(k - 1);
                double c = a - b;

                Assert.AreEqual(expected, c, 1e-15);
                Assert.AreEqual(c, target.DistributionFunction(k - 1, k), 1e-15);
            }
        }
        public void ConstructorTest()
        {
            var uniform = new UniformContinuousDistribution(a: 0.42, b: 1.1);

            double mean = uniform.Mean;     // 0.76
            double median = uniform.Median; // 0.76
            double var = uniform.Variance;  // 0.03853333333333335

            double cdf = uniform.DistributionFunction(x: 0.9); // 0.70588235294117641
            double pdf = uniform.ProbabilityDensityFunction(x: 0.9); // 1.4705882352941173
            double lpdf = uniform.LogProbabilityDensityFunction(x: 0.9); // 0.38566248081198445

            double ccdf = uniform.ComplementaryDistributionFunction(x: 0.9); // 0.29411764705882359
            double icdf = uniform.InverseDistributionFunction(p: cdf); // 0.9

            double hf = uniform.HazardFunction(x: 0.9); // 4.9999999999999973
            double chf = uniform.CumulativeHazardFunction(x: 0.9); // 1.2237754316221154

            string str = uniform.ToString(CultureInfo.InvariantCulture); // "U(x; a = 0.42, b = 1.1)"

            Assert.AreEqual(0.76, mean);
            Assert.AreEqual(0.76, median);
            Assert.AreEqual(0.03853333333333335, var);
            Assert.AreEqual(1.2237754316221154, chf);
            Assert.AreEqual(0.70588235294117641, cdf);
            Assert.AreEqual(1.4705882352941173, pdf);
            Assert.AreEqual(0.38566248081198445, lpdf);
            Assert.AreEqual(4.9999999999999973, hf);
            Assert.AreEqual(0.29411764705882359, ccdf);
            Assert.AreEqual(0.9, icdf);
            Assert.AreEqual("U(x; a = 0.42, b = 1.1)", str);
        }
示例#4
0
        public void DistributionFunctionTest()
        {
            double a = -2;
            double b = 2;
            UniformContinuousDistribution target = new UniformContinuousDistribution(a, b);

            double actual;

            actual = target.DistributionFunction(-2);
            Assert.AreEqual(0, actual);

            actual = target.DistributionFunction(-1);
            Assert.AreEqual(0.25, actual);

            actual = target.DistributionFunction(0);
            Assert.AreEqual(0.5, actual);

            actual = target.DistributionFunction(1);
            Assert.AreEqual(0.75, actual);

            actual = target.DistributionFunction(2);
            Assert.AreEqual(1, actual);
        }
        public void RTest()
        {
            var target = new UniformContinuousDistribution(3, 6);

            Assert.AreEqual(0, target.ProbabilityDensityFunction(2));
            Assert.AreEqual(1 / 3.0, target.ProbabilityDensityFunction(3), 1e-10);
            Assert.AreEqual(1 / 3.0, target.ProbabilityDensityFunction(4), 1e-10);
            Assert.AreEqual(1 / 3.0, target.ProbabilityDensityFunction(5), 1e-10);
            Assert.AreEqual(1 / 3.0, target.ProbabilityDensityFunction(6), 1e-10);
            Assert.AreEqual(0, target.ProbabilityDensityFunction(7));

            Assert.AreEqual(0, target.DistributionFunction(2));
            Assert.AreEqual(0, target.DistributionFunction(3));
            Assert.AreEqual(1 / 3.0, target.DistributionFunction(4), 1e-10);
            Assert.AreEqual(2 / 3.0, target.DistributionFunction(5), 1e-10);
            Assert.AreEqual(1, target.DistributionFunction(6), 1e-10);
            Assert.AreEqual(1, target.DistributionFunction(7));
        }
        public void DistributionFunctionTest()
        {
            double a = -2;
            double b = 2;
            UniformContinuousDistribution target = new UniformContinuousDistribution(a, b);

            double actual;

            actual = target.DistributionFunction(-2);
            Assert.AreEqual(0, actual);

            actual = target.DistributionFunction(-1);
            Assert.AreEqual(0.25, actual);

            actual = target.DistributionFunction(0);
            Assert.AreEqual(0.5, actual);

            actual = target.DistributionFunction(1);
            Assert.AreEqual(0.75, actual);

            actual = target.DistributionFunction(2);
            Assert.AreEqual(1, actual);
        }
        public void IntervalTest()
        {
            var target = new UniformContinuousDistribution(-10, 10);

            for (int k = -15; k < 15; k++)
            {
                double expected = target.ProbabilityDensityFunction(k);

                double a = target.DistributionFunction(k);
                double b = target.DistributionFunction(k - 1);
                double c = a - b;

                Assert.AreEqual(expected, c, 1e-15);
                Assert.AreEqual(c, target.DistributionFunction(k - 1, k), 1e-15);
            }
        }