From 34016386eafbb87725bf0b489c74ac579f402e49 Mon Sep 17 00:00:00 2001 From: Jon Smit Date: Tue, 5 Jul 2016 22:08:44 +0200 Subject: [PATCH] UnitTest: checked whether some correlations are equal to 1. --- .../StatisticsTests/CorrelationTests.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/UnitTests/StatisticsTests/CorrelationTests.cs b/src/UnitTests/StatisticsTests/CorrelationTests.cs index b2da9c84..94aa7b67 100644 --- a/src/UnitTests/StatisticsTests/CorrelationTests.cs +++ b/src/UnitTests/StatisticsTests/CorrelationTests.cs @@ -104,6 +104,35 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests AssertHelpers.AlmostEqual(corr, corr2, 14); } + /// + /// Constant-weighted Pearson correlation test. + /// + [Test] + public void WeightedPearsonCorrelationEqualsOneTest() + { + int n = 5; + double maxWeight = 1e5; + var dataA = Generate.LinearRange(1, n); + var dataB = Generate.LinearRange(1, n); + var weights1 = Generate.LinearRange(1, n); + var weights2 = Generate.LogSpaced(n, 1, 5); + var weights3 = Generate.LogSpaced(n, 5, 1); + var weights4 = Generate.Repeat(n, maxWeight); + var weights5 = Generate.Repeat(n, 1/maxWeight); + + var corr1 = Correlation.WeightedPearson(dataA, dataB, weights1); + var corr2 = Correlation.WeightedPearson(dataA, dataB, weights2); + var corr3 = Correlation.WeightedPearson(dataA, dataB, weights3); + var corr4 = Correlation.WeightedPearson(dataA, dataB, weights4); + var corr5 = Correlation.WeightedPearson(dataA, dataB, weights5); + + AssertHelpers.AlmostEqual(corr1, 1, 14); + AssertHelpers.AlmostEqual(corr2, 1, 14); + AssertHelpers.AlmostEqual(corr3, 1, 14); + AssertHelpers.AlmostEqual(corr4, 1, 14); + AssertHelpers.AlmostEqual(corr5, 1, 14); + } + /// /// Pearson correlation test fail. ///