public void ComputeTest()
{
LinearDiscriminantAnalysis lda = new LinearDiscriminantAnalysis(inputs, output);
// Compute the analysis
lda.Compute();
double[,] expectedScatter1 =
{
{ 0.80, -0.40 },
{ -0.40, 2.64 }
};
double[,] expectedScatter2 =
{
{ 1.84, -0.04 },
{ -0.04, 2.64 }
};
double[,] expectedBetween =
{
{ 29.16, 21.60 },
{ 21.60, 16.00 },
};
double[,] expectedWithin =
{
{ 2.64, -0.44 },
{ -0.44, 5.28 }
};
Assert.IsTrue(Matrix.IsEqual(lda.Classes[0].Scatter, expectedScatter1, 0.01));
Assert.IsTrue(Matrix.IsEqual(lda.Classes[1].Scatter, expectedScatter2, 0.01));
Assert.IsTrue(Matrix.IsEqual(lda.ScatterBetweenClass, expectedBetween, 0.01));
Assert.IsTrue(Matrix.IsEqual(lda.ScatterWithinClass, expectedWithin, 0.01));
}