public void WhiteningTest()
{
double[,] value =
{
{ 0.4218, 0.6557, 0.6787, 0.6555 },
{ 0.9157, 0.0357, 0.7577, 0.1712 },
{ 0.7922, 0.8491, 0.7431, 0.7060 },
{ 0.9595, 0.9340, 0.3922, 0.0318 },
};
double[,] I = Matrix.Identity(3);
double[,] T = null; // transformation matrix
// Perform the whitening transform
double[,] actual = Tools.Whitening(value, out T);
// Check if covariance matrix has the identity form
double[,] cov = Measures.Covariance(actual).Submatrix(0, 2, 0, 2);
Assert.IsTrue(cov.IsEqual(I, 1e-10));
// Check if we can transform the data
double[,] result = value.Multiply(T);
Assert.IsTrue(result.IsEqual(actual));
}