public void correlation_success()
{
double[] mean = Measures.Mean(data, dimension: 0);
double[] stdDev = Measures.StandardDeviation(data);
double[,] cov = Measures.Correlation(data);
var actual = PrincipalComponentAnalysis.FromCorrelationMatrix(mean, stdDev, cov);
var expected = new PrincipalComponentAnalysis(data, AnalysisMethod.Standardize);
// Compute
actual.Compute();
expected.Compute();
// Transform
double[,] actualTransform = actual.Transform(data);
double[,] expectedTransform = expected.Transform(data);
// Verify both are equal with 0.01 tolerance value
Assert.IsTrue(Matrix.IsEqual(actualTransform, expectedTransform, 0.01));
// Transform
double[,] image = actual.Transform(data);
double[,] reverse = actual.Revert(image);
// Verify both are equal with 0.01 tolerance value
Assert.IsTrue(Matrix.IsEqual(reverse, data, 0.01));
}