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));
 }
Exemple #3
0
        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));
        }