Accord.Tests.Math.NormalTest.BivariateFunctionTest C# (CSharp) Method

BivariateFunctionTest() private method

private BivariateFunctionTest ( ) : void
return void
        public void BivariateFunctionTest()
        {
            {
                double a = Normal.Bivariate(+0, +0, 0.0);
                double b = Normal.Bivariate(-1, +0, 0.0);
                double c = Normal.Bivariate(+0, -1, 0.0);
                double d = Normal.Bivariate(-1, -1, 0.0);

                Assert.AreEqual(a, 0.25);
                Assert.AreEqual(b, 0.07932762696572859, 1e-10);
                Assert.AreEqual(c, 0.07932762696572859, 1e-10);
                Assert.AreEqual(d, 0.02517148960005514, 1e-10);
            }

            {
                double a = Normal.Bivariate(0, 0, 0.0);
                double b = Normal.Bivariate(1, 0, 0.0);
                double c = Normal.Bivariate(0, 1, 0.0);
                double d = Normal.Bivariate(1, 1, 0.0);

                Assert.AreEqual(a, 0.25);
                Assert.AreEqual(b, 0.4206723730342714, 1e-10);
                Assert.AreEqual(c, 0.4206723730342714, 1e-10);
                Assert.AreEqual(d, 0.707860981737141, 1e-10);
            }

            {
                double a = Normal.Bivariate(+0, +0, 0.99);
                double b = Normal.Bivariate(-1, +0, 0.99);
                double c = Normal.Bivariate(+0, -1, 0.99);
                double d = Normal.Bivariate(-1, -1, 0.99);

                Assert.AreEqual(a, 0.477473293177794, 1e-6);
                Assert.AreEqual(b, 0.1586552539314527, 1e-10);
                Assert.AreEqual(c, 0.1586552539314527, 1e-10);
                Assert.AreEqual(d, 0.1450035348479944, 1e-8);
            }

            {
                double a = Normal.Bivariate(0, 0, 0.99);
                double b = Normal.Bivariate(1, 0, 0.99);
                double c = Normal.Bivariate(0, 1, 0.99);
                double d = Normal.Bivariate(1, 1, 0.99);

                Assert.AreEqual(a, 0.477473293177794, 1e-6);
                Assert.AreEqual(b, 0.4999999999999956, 1e-10);
                Assert.AreEqual(c, 0.4999999999999956, 1e-10);
                Assert.AreEqual(d, 0.8276930269850803, 1e-8);
            }

            {
                double a = Normal.Bivariate(0, 0, 0.42);
                double b = Normal.Bivariate(0, 1, 0.42);
                double c = Normal.Bivariate(1, 0, 0.42);
                double d = Normal.Bivariate(1, 1, 0.42);

                double e = Normal.Bivariate(-0, -1, 0.42);
                double f = Normal.Bivariate(-1, -0, 0.42);
                double g = Normal.Bivariate(-1, -1, 0.42);


                Assert.AreEqual(a, 0.3189849652491711, 1e-10);
                Assert.AreEqual(b, 0.4611405565191831, 1e-10);
                Assert.AreEqual(c, 0.4611405565191831, 1e-10);
                Assert.AreEqual(d, 0.7379699765574815, 1e-10);
                Assert.AreEqual(e, 0.1197958104506402, 1e-10);
                Assert.AreEqual(f, 0.1197958104506402, 1e-10);
                Assert.AreEqual(g, 0.05528048442039563, 1e-10);
            }

        }