public void MahalanobisTest2()
{
// Example from Statistical Distance Calculator
// http://maplepark.com/~drf5n/cgi-bin/dist.cgi
double[,] cov =
{
{ 1.030303, 2.132728, 0.576716 },
{ 2.132728, 4.510515, 1.185771 },
{ 0.576716, 1.185771, 0.398922 }
};
double[] x, y;
double actual, expected;
x = new double[] { 2, 4, 1 };
y = new double[] { 0, 0, 0 };
expected = 2.07735368677415;
actual = Distance.Mahalanobis(x, y, cov.Inverse());
Assert.AreEqual(expected, actual, 1e-10);
x = new double[] { 7, 5, 1 };
y = new double[] { 1, 0.52, -79 };
expected = 277.8828871106366;
actual = Distance.Mahalanobis(x, y, cov.Inverse());
Assert.AreEqual(expected, actual, 0.0000000000001);
}