public void NonNegativeMatrixFactorizationConstructorTest()
{
Accord.Math.Tools.SetupGenerator(0);
double[,] X =
{
{ 1, 0, 5 },
{ 1, 2, 1 },
{ 0, 6, 1 },
{ 2, 6, 5 },
{ 2, 1, 1 },
{ 5, 1, 1 }
};
var nmf = new NonnegativeMatrixFactorization(X, 3);
var H = nmf.RightNonnegativeFactors;
var W = nmf.LeftNonnegativeFactors;
var R = Matrix.Multiply(W, H).Transpose();
Assert.IsTrue(R.IsEqual(X, 0.05));
}