public void ZeroVarianceSequence() { var stats2 = new WeightedDescriptiveStatistics(new[] { Tuple.Create(1.0, 2.0), Tuple.Create(1.0, 2.0), Tuple.Create(1.0, 2.0), Tuple.Create(1.0, 2.0) }); Assert.That(stats2.Skewness, Is.NaN); Assert.That(stats2.Kurtosis, Is.NaN); }
public void ShortSequences() { var stats5 = new WeightedDescriptiveStatistics(Array.Empty <Tuple <double, double> >()); Assert.That(stats5.Skewness, Is.NaN); Assert.That(stats5.Kurtosis, Is.NaN); var stats6 = new WeightedDescriptiveStatistics(new[] { Tuple.Create(1.0, 1.0) }); Assert.That(stats6.Skewness, Is.NaN); Assert.That(stats6.Kurtosis, Is.NaN); var stats7 = new WeightedDescriptiveStatistics(new[] { Tuple.Create(1.0, 1.0), Tuple.Create(1.0, 2.0) }); Assert.That(stats7.Skewness, Is.NaN); Assert.That(stats7.Kurtosis, Is.NaN); var stats8 = new WeightedDescriptiveStatistics(new[] { Tuple.Create(1.0, 1.0), Tuple.Create(1.0, 2.0), Tuple.Create(1.0, -3.0) }); Assert.That(stats8.Skewness, Is.Not.NaN); Assert.That(stats8.Kurtosis, Is.NaN); var stats9 = new WeightedDescriptiveStatistics(new[] { Tuple.Create(1.0, 1.0), Tuple.Create(1.0, 2.0), Tuple.Create(1.0, -3.0), Tuple.Create(1.0, -4.0) }); Assert.That(stats9.Skewness, Is.Not.NaN); Assert.That(stats9.Kurtosis, Is.Not.NaN); }
public void IEnumerableZeroWeightTupleLowAccuracy(string dataSet, int digits, double skewness, double kurtosis, double median, double min, double max, int count) { var data = _data[dataSet]; var stats = new WeightedDescriptiveStatistics(data.DataWithNulls.Select(x => x.HasValue ? Tuple.Create(1.0, x.Value) : Tuple.Create(0.0, 3.14159)), false); AssertHelpers.AlmostEqualRelative(data.Mean, stats.Mean, 14); AssertHelpers.AlmostEqualRelative(data.StandardDeviation, stats.StandardDeviation, digits); AssertHelpers.AlmostEqualRelative(skewness, stats.Skewness, 7); AssertHelpers.AlmostEqualRelative(kurtosis, stats.Kurtosis, 7); Assert.AreEqual(stats.Minimum, min); Assert.AreEqual(stats.Maximum, max); Assert.AreEqual(stats.Count, count); Assert.AreEqual(stats.TotalWeight, count); }
public void IEnumerableTupleHighAccuracy(string dataSet, double skewness, double kurtosis, double median, double min, double max, int count) { var data = _data[dataSet]; var stats = new WeightedDescriptiveStatistics(data.Data.Select(x => Tuple.Create(1.0, x)), true); AssertHelpers.AlmostEqualRelative(data.Mean, stats.Mean, 14); AssertHelpers.AlmostEqualRelative(data.StandardDeviation, stats.StandardDeviation, 14); AssertHelpers.AlmostEqualRelative(skewness, stats.Skewness, 9); AssertHelpers.AlmostEqualRelative(kurtosis, stats.Kurtosis, 9); Assert.AreEqual(stats.Minimum, min); Assert.AreEqual(stats.Maximum, max); Assert.AreEqual(stats.Count, count); Assert.AreEqual(stats.TotalWeight, count); }