public void Matrix_GetInverseMatrix(uint size) { MatrixDouble m = CreateRandomMatrix(size, size); MatrixDouble i = m.GetInverseMatrix(); Assert.AreEqual(m.Width, i.Width); Assert.AreEqual(m.Height, i.Height); MatrixDouble r = m * i; Assert.IsTrue(r.IsIdentity(1e-4)); }
public void MatrixDouble_IsIdentity() { MatrixDouble m = new MatrixDouble(5, 5); Assert.IsFalse(m.IsIdentity()); m.SetIdentity(); Assert.IsTrue(m.IsIdentity()); const float epsilon = 0.1f; m[0, 0] = 1.0 + epsilon / 2.0; Assert.IsFalse(m.IsIdentity()); Assert.IsTrue(m.IsIdentity(epsilon)); Assert.IsTrue(m.IsIdentity((double)epsilon)); m.SetIdentity(); MatrixDouble inv = m.GetInverseMatrix(); Assert.IsTrue(inv.IsIdentity()); }