diff --git a/src/Examples/Statistics.cs b/src/Examples/Statistics.cs index 4a0208a8..9e24c5c0 100644 --- a/src/Examples/Statistics.cs +++ b/src/Examples/Statistics.cs @@ -105,7 +105,6 @@ namespace Examples Console.WriteLine(@"{0} - Largest element", descriptiveStatistics.Maximum.ToString(" #0.00000;-#0.00000")); Console.WriteLine(@"{0} - Smallest element", descriptiveStatistics.Minimum.ToString(" #0.00000;-#0.00000")); Console.WriteLine(@"{0} - Mean", descriptiveStatistics.Mean.ToString(" #0.00000;-#0.00000")); - Console.WriteLine(@"{0} - Median", descriptiveStatistics.Median.ToString(" #0.00000;-#0.00000")); Console.WriteLine(@"{0} - Variance", descriptiveStatistics.Variance.ToString(" #0.00000;-#0.00000")); Console.WriteLine(@"{0} - Standard deviation", descriptiveStatistics.StandardDeviation.ToString(" #0.00000;-#0.00000")); Console.WriteLine(@"{0} - Skewness", descriptiveStatistics.Skewness.ToString(" #0.00000;-#0.00000")); diff --git a/src/Numerics/Statistics/DescriptiveStatistics.cs b/src/Numerics/Statistics/DescriptiveStatistics.cs index 6e392615..b5c1654c 100644 --- a/src/Numerics/Statistics/DescriptiveStatistics.cs +++ b/src/Numerics/Statistics/DescriptiveStatistics.cs @@ -87,7 +87,7 @@ namespace MathNet.Numerics.Statistics Compute(data); } - Median = data.Median(); + _medianLazy = new Lazy(() => data.Median()); } /// @@ -119,7 +119,7 @@ namespace MathNet.Numerics.Statistics Compute(data); } - Median = data.Median(); + _medianLazy = new Lazy(() => data.Median()); } /// @@ -158,7 +158,12 @@ namespace MathNet.Numerics.Statistics /// /// The sample median. [Obsolete("Dropped in future versions for performance reasons. Please use Statistics.Median instead.")] - public double Median { get; private set; } + public double Median + { + get { return _medianLazy.Value; } + } + + readonly Lazy _medianLazy; /// /// Gets the sample kurtosis. diff --git a/src/UnitTests/ComplexTests/Complex32Test.cs b/src/UnitTests/ComplexTests/Complex32Test.cs index 4d133295..ff3c9214 100644 --- a/src/UnitTests/ComplexTests/Complex32Test.cs +++ b/src/UnitTests/ComplexTests/Complex32Test.cs @@ -510,8 +510,10 @@ namespace MathNet.Numerics.UnitTests.ComplexTests [Test] public void CanTestForEqualityUsingOperators() { +#pragma warning disable 1718 Assert.That(Complex32.NaN != Complex32.NaN); Assert.That(Complex32.PositiveInfinity == Complex32.PositiveInfinity); +#pragma warning restore 1718 Assert.That(new Complex32(1.1f, -2.2f) == new Complex32(1.1f, -2.2f)); Assert.That(new Complex32(-1.1f, 2.2f) != new Complex32(1.1f, -2.2f)); } diff --git a/src/UnitTests/StatisticsTests/DescriptiveStatisticsTests.cs b/src/UnitTests/StatisticsTests/DescriptiveStatisticsTests.cs index 7fc132e6..a87c2161 100644 --- a/src/UnitTests/StatisticsTests/DescriptiveStatisticsTests.cs +++ b/src/UnitTests/StatisticsTests/DescriptiveStatisticsTests.cs @@ -114,7 +114,6 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests AssertHelpers.AlmostEqual(data.StandardDeviation, stats.StandardDeviation, digits); AssertHelpers.AlmostEqual(skewness, stats.Skewness, 7); AssertHelpers.AlmostEqual(kurtosis, stats.Kurtosis, 7); - AssertHelpers.AlmostEqual(median, stats.Median, 15); Assert.AreEqual(stats.Minimum, min); Assert.AreEqual(stats.Maximum, max); Assert.AreEqual(stats.Count, count); @@ -146,7 +145,6 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests AssertHelpers.AlmostEqual(data.StandardDeviation, stats.StandardDeviation, 15); AssertHelpers.AlmostEqual(skewness, stats.Skewness, 9); AssertHelpers.AlmostEqual(kurtosis, stats.Kurtosis, 9); - AssertHelpers.AlmostEqual(median, stats.Median, 15); Assert.AreEqual(stats.Minimum, min); Assert.AreEqual(stats.Maximum, max); Assert.AreEqual(stats.Count, count); @@ -179,7 +177,6 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests AssertHelpers.AlmostEqual(data.StandardDeviation, stats.StandardDeviation, digits); AssertHelpers.AlmostEqual(skewness, stats.Skewness, 7); AssertHelpers.AlmostEqual(kurtosis, stats.Kurtosis, 7); - AssertHelpers.AlmostEqual(median, stats.Median, 15); Assert.AreEqual(stats.Minimum, min); Assert.AreEqual(stats.Maximum, max); Assert.AreEqual(stats.Count, count); @@ -212,7 +209,6 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests AssertHelpers.AlmostEqual(data.StandardDeviation, stats.StandardDeviation, digits); AssertHelpers.AlmostEqual(skewness, stats.Skewness, 7); AssertHelpers.AlmostEqual(kurtosis, stats.Kurtosis, 7); - AssertHelpers.AlmostEqual(median, stats.Median, 15); Assert.AreEqual(stats.Minimum, min); Assert.AreEqual(stats.Maximum, max); Assert.AreEqual(stats.Count, count); @@ -244,7 +240,6 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests AssertHelpers.AlmostEqual(data.StandardDeviation, stats.StandardDeviation, 15); AssertHelpers.AlmostEqual(skewness, stats.Skewness, 9); AssertHelpers.AlmostEqual(kurtosis, stats.Kurtosis, 9); - AssertHelpers.AlmostEqual(median, stats.Median, 15); Assert.AreEqual(stats.Minimum, min); Assert.AreEqual(stats.Maximum, max); Assert.AreEqual(stats.Count, count); @@ -277,7 +272,6 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests AssertHelpers.AlmostEqual(data.StandardDeviation, stats.StandardDeviation, digits); AssertHelpers.AlmostEqual(skewness, stats.Skewness, 7); AssertHelpers.AlmostEqual(kurtosis, stats.Kurtosis, 7); - AssertHelpers.AlmostEqual(median, stats.Median, 15); Assert.AreEqual(stats.Minimum, min); Assert.AreEqual(stats.Maximum, max); Assert.AreEqual(stats.Count, count);