public void GaussianMixtureModelTest2()
{
Accord.Math.Random.Generator.Seed = 0;
int height = 16;
int width = 16;
var gmm = new GaussianMixtureModel(3);
// gmm.Regularization = 0;
Assert.AreEqual(3, gmm.Gaussians.Count);
Assert.IsNull(gmm.Gaussians[0].Covariance);
Assert.IsNull(gmm.Gaussians[0].Mean);
double[][][] A = new double[3][][];
A[0] = new double[height][];
A[1] = new double[height][];
A[2] = new double[height][];
for (int j = 0; j < height; j++)
{
A[0][j] = new double[width];
A[1][j] = new double[width];
A[2][j] = new double[width];
for (int k = 0; k < width; k++)
{
A[0][j][k] = 102;
A[1][j][k] = 57;
A[2][j][k] = 200;
}
}
double[][] B = Matrix.Stack(A);
bool thrown = false;
try
{
var result = gmm.Compute(B);
}
catch (NonPositiveDefiniteMatrixException)
{
thrown = true;
}
Assert.IsTrue(thrown);
}