public void Revert_new_method()
{
var target = new PrincipalComponentAnalysis();
// Compute
var transform = target.Learn(data.ToJagged());
// Transform
double[][] image = target.Transform(data.ToJagged());
// Reverse
double[][] actual = target.Revert(image);
// Verify both are equal with 0.01 tolerance value
Assert.IsTrue(Matrix.IsEqual(actual, data, 0.01));
// Reverse
double[][] actual2 = transform.Inverse().Transform(image);
// Verify both are equal with 0.01 tolerance value
Assert.IsTrue(Matrix.IsEqual(actual2, data, 0.01));
Assert.IsTrue(Matrix.IsEqual(actual2, actual, 1e-5));
}