From d15f592f3ec6b63fb6212182b2b96865da9b3120 Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Sat, 19 May 2012 20:17:31 +0200 Subject: [PATCH] Normal Distribution: fix Variance property setter The variance setter was passing the variance as standard distribution, instead of its square root. Reported by Peter126 at Codeplex. --- src/Numerics/Distributions/Continuous/Normal.cs | 2 +- src/UnitTests/DistributionTests/Continuous/NormalTests.cs | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Numerics/Distributions/Continuous/Normal.cs b/src/Numerics/Distributions/Continuous/Normal.cs index 73e58ca2..f497e3f5 100644 --- a/src/Numerics/Distributions/Continuous/Normal.cs +++ b/src/Numerics/Distributions/Continuous/Normal.cs @@ -230,7 +230,7 @@ namespace MathNet.Numerics.Distributions set { - SetParameters(_mean, value); + SetParameters(_mean, Math.Sqrt(value)); } } diff --git a/src/UnitTests/DistributionTests/Continuous/NormalTests.cs b/src/UnitTests/DistributionTests/Continuous/NormalTests.cs index 6a5bb987..d1a6a8ad 100644 --- a/src/UnitTests/DistributionTests/Continuous/NormalTests.cs +++ b/src/UnitTests/DistributionTests/Continuous/NormalTests.cs @@ -193,10 +193,12 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Continuous [TestCase(Double.PositiveInfinity)] public void CanSetVariance(double var) { - new Normal + var dist = new Normal { Variance = var }; + + Assert.AreEqual(var, dist.Variance, 1e-14); } /// @@ -221,10 +223,12 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Continuous [TestCase(Double.PositiveInfinity)] public void CanSetStdDev(double sdev) { - new Normal + var dist = new Normal { StdDev = sdev }; + + Assert.AreEqual(sdev, dist.StdDev, 1e-14); } ///