Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }