public void CovarianceTest3()
{
double[][] matrix = new double[,]
{
{ 4.0, 2.0, 0.60 },
{ 4.2, 2.1, 0.59 },
{ 3.9, 2.0, 0.58 },
{ 4.3, 2.1, 0.62 },
{ 4.1, 2.2, 0.63 }
}.ToJagged();
double[,] expected = new double[,]
{
{ 0.02500, 0.00750, 0.00175 },
{ 0.00750, 0.00700, 0.00135 },
{ 0.00175, 0.00135, 0.00043 },
};
double[] weights = { 0.2, 0.2, 0.2, 0.2, 0.2 };
double[,] actual = Measures.WeightedCovariance(matrix, weights, 0);
Assert.IsTrue(Matrix.IsEqual(expected, actual, 0.0001));
matrix = matrix.Transpose();
actual = Measures.WeightedCovariance(matrix, weights, 1);
Assert.IsTrue(Matrix.IsEqual(expected, actual, 0.0001));
}