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.
///