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); }
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); }
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); }