public void T12_Invertability() { Mat4 mat4 = new Mat4(6, 4, 4, 4, 5, 5, 7, 6, 4, -9, 3, -7, 9, 1, 7, -6); Assert.AreEqual(-2120, mat4.Det()); mat4 = new Mat4(-4, 2, -2, -3, 9, 6, 2, 6, 0, -5, 1, -5, 0, 0, 0, 0); Assert.AreEqual(0, mat4.Det()); }
public void T13_Inversion() { Mat4 a = new Mat4(-5, 2, 6, -8, 1, -5, 1, 8, 7, 7, -6, -7, 1, -3, 7, 4); Mat4 b = a.Inverse(); Assert.AreEqual(532, a.Det()); Assert.IsTrue(Utility.FE(-160 / 532f, b[3, 2])); Assert.IsTrue(Utility.FE(105f / 532, b[2, 3])); Assert.AreEqual(new Mat4(0.21805f, 0.45113f, 0.24060f, -0.04511f, -0.80827f, -1.45677f, -0.44361f, 0.52068f, -0.07895f, -0.22368f, -0.05263f, 0.19737f, -0.52256f, -0.81391f, -0.30075f, 0.30639f), b); }
public void T11_Det() { Mat3 a = new Mat3(1, 2, 6, -5, 8, -4, 2, 6, 4); Assert.AreEqual(56, a.Cofactor(0, 0)); Assert.AreEqual(12, a.Cofactor(0, 1)); Assert.AreEqual(-46, a.Cofactor(0, 2)); Assert.AreEqual(-196, a.Det()); Mat4 b = new Mat4(-2, -8, 3, 5, -3, 1, 7, 3, 1, 2, -9, 6, -6, 7, 7, -9); Assert.AreEqual(-4071, b.Det()); }