Browse Source

Lazy load DescriptiveStatistics.Median

v2
tibel 14 years ago
parent
commit
c137343596
  1. 1
      src/Examples/Statistics.cs
  2. 11
      src/Numerics/Statistics/DescriptiveStatistics.cs
  3. 2
      src/UnitTests/ComplexTests/Complex32Test.cs
  4. 6
      src/UnitTests/StatisticsTests/DescriptiveStatisticsTests.cs

1
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"));

11
src/Numerics/Statistics/DescriptiveStatistics.cs

@ -87,7 +87,7 @@ namespace MathNet.Numerics.Statistics
Compute(data);
}
Median = data.Median();
_medianLazy = new Lazy<double>(() => data.Median());
}
/// <summary>
@ -119,7 +119,7 @@ namespace MathNet.Numerics.Statistics
Compute(data);
}
Median = data.Median();
_medianLazy = new Lazy<double>(() => data.Median());
}
/// <summary>
@ -158,7 +158,12 @@ namespace MathNet.Numerics.Statistics
/// </summary>
/// <value>The sample median.</value>
[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<double> _medianLazy;
/// <summary>
/// Gets the sample kurtosis.

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

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

Loading…
Cancel
Save