Пример #1
0
        public void normalDensity()
        {
            double mu    = 0.0;
            double sigma = 1;
            double x     = 0.0;
            double y     = 0.0;
            double t     = 1.0;
            double s     = 0.0;

            double actual = new NormalDensity(
                mu, sigma).density(s, t, x, y) * Math.Sqrt(Math.PI * 2);
            double expected = Normal.PDF(
                0, 1, (y - x - mu * (t - s)) / (sigma * Math.Sqrt(t - s)))
                              * Math.Sqrt(Math.PI * 2);

            Assert.AreEqual(expected, actual, 1e-8);

            mu     = 0.0;
            sigma  = 1;
            x      = 0.0;
            y      = 0.0;
            t      = 1.0;
            s      = 0.0;
            actual = new NormalDensity(
                mu, sigma).density(s, t, x, y) * Math.Sqrt(Math.PI * 2);
            expected = Normal.PDF(
                0, 1, (y - x - mu * (t - s)) / (sigma * Math.Sqrt(t - s)))
                       * Math.Sqrt(Math.PI * 2);
            Assert.AreEqual(expected, actual, 1e-8);
        }
Пример #2
0
        public void NormalDistribution_NonStandardNormal_ReturnsCorrectValues()
        {
            double mu    = .5;
            double sigma = 2;

            NormalDensity normalDensity = new NormalDensity(mu, sigma);
            double        tolerance     = 1e-6;

            var    output1         = normalDensity.N(0);
            double expectedOutput1 = 0.193334058;

            Assert.AreEqual(expectedOutput1, output1, tolerance);

            var    output2         = normalDensity.N(1);
            double expectedOutput2 = 0.193334058;

            Assert.AreEqual(expectedOutput2, output2, tolerance);

            var    output3         = normalDensity.N(-1);
            double expectedOutput3 = 0.150568716;

            Assert.AreEqual(expectedOutput3, output3, tolerance);
        }
Пример #3
0
        public void NormalDistribution_StandardNormal_ReturnsCorrectValues()
        {
            double mu    = 0;
            double sigma = 1;

            NormalDensity normalDensity = new NormalDensity(mu, sigma);
            double        tolerance     = 1e-6;

            var    output1         = normalDensity.N(0);
            double expectedOutput1 = 0.39894228;

            Assert.AreEqual(expectedOutput1, output1, tolerance);

            var    output2         = normalDensity.N(1);
            double expectedOutput2 = 0.241970725;

            Assert.AreEqual(expectedOutput2, output2, tolerance);

            var    output3         = normalDensity.N(-1);
            double expectedOutput3 = 0.241970725;

            Assert.AreEqual(expectedOutput3, output3, tolerance);
        }