public void InverseTest()
{
double[,] value =
{
{ 2, 3, 0 },
{ -1, 2, 1 },
{ 0, -1, 3 }
};
double[,] expectedInverse =
{
{ 0.3043, -0.3913, 0.1304 },
{ 0.1304, 0.2609, -0.0870 },
{ 0.0435, 0.0870, 0.3043 },
};
var target = new LuDecomposition(value);
double[,] actualInverse = target.Inverse();
Assert.IsTrue(Matrix.IsEqual(expectedInverse, actualInverse, 0.001));
Assert.IsTrue(Matrix.IsEqual(value, target.Reverse()));
var target2 = new JaggedLuDecomposition(value.ToJagged());
actualInverse = target2.Inverse().ToMatrix();
Assert.IsTrue(Matrix.IsEqual(expectedInverse, actualInverse, 0.001));
Assert.IsTrue(Matrix.IsEqual(value, target2.Reverse()));
}