public void TestMultiplyByMatrix() { const double angle = Math.PI / 4.0; double cos = Math.Cos(angle / 2.0); double sin = Math.Sin(angle / 2.0); double a = cos * cos - sin * sin / 3.0; double b = 2.0 * (sin * sin + sin * cos * Math.Sqrt(3.0)) / 3.0; double c = 2.0 * (sin * sin - sin * cos * Math.Sqrt(3.0)) / 3.0; // The matrix here is formed from the orthonormal set obtained by rotating // the x-axis, y-axis, and z-axis through an angle of 45 degrees about // the (1,1,1) vector. Matrix3By3 matrix = new Matrix3By3(a, c, b, b, a, c, c, b, a); Matrix3By3 transpose = matrix.Transpose(); Matrix3By3 result = matrix.Multiply(transpose); Assert.IsTrue(result.EqualsEpsilon(Matrix3By3.Identity, Constants.Epsilon16)); result = matrix * transpose; Assert.IsTrue(result.EqualsEpsilon(Matrix3By3.Identity, Constants.Epsilon16)); }
public void TestEqualsEpsilon() { Matrix3By3 first = new Matrix3By3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); Matrix3By3 second = new Matrix3By3(1e-2, 1e-3, 1e-4, 1e-5, 1e-6, 1e-7, 1e-8, 1e-9, 1e-10); Assert.IsTrue(second.EqualsEpsilon(first, 1e-1)); Assert.IsTrue(second.EqualsEpsilon(first, 1e-2)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-3)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-4)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-5)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-6)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-7)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-8)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-9)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-10)); }
public void TestEqualsEpsilon() { Matrix3By3 first = new Matrix3By3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); Matrix3By3 second = new Matrix3By3(1e-2, 1e-3, 1e-4, 1e-5, 1e-6, 1e-7, 1e-8, 1e-9, 1e-10); Assert.IsTrue(second.EqualsEpsilon(first, 1e-1)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-2)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-3)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-4)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-5)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-6)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-7)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-8)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-9)); Assert.IsFalse(second.EqualsEpsilon(first, 1e-10)); }