Ejemplo n.º 1
0
    def test_operators_number(self):
        m = Matrix44.identity()
        fv = np.empty((1,), dtype=[('i', np.int16, 1),('f', np.float32, 1)])
        fv[0] = (2, 2.0)
        
        # add
        self.assertTrue(np.array_equal(m + 1.0, matrix44.create_identity()[:] + 1.0))
        self.assertTrue(np.array_equal(m + 1, matrix44.create_identity()[:] + 1.0))
        self.assertTrue(np.array_equal(m + np.float(1.), matrix44.create_identity()[:] + 1.0))
        self.assertTrue(np.array_equal(m + fv[0]['f'], matrix44.create_identity()[:] + 2.0))
        self.assertTrue(np.array_equal(m + fv[0]['i'], matrix44.create_identity()[:] + 2.0))

        # subtract
        self.assertTrue(np.array_equal(m - 1.0, matrix44.create_identity()[:] - 1.0))
        self.assertTrue(np.array_equal(m - 1, matrix44.create_identity()[:] - 1.0))
        self.assertTrue(np.array_equal(m - np.float(1.), matrix44.create_identity()[:] - 1.0))
        self.assertTrue(np.array_equal(m - fv[0]['f'], matrix44.create_identity()[:] - 2.0))
        self.assertTrue(np.array_equal(m - fv[0]['i'], matrix44.create_identity()[:] - 2.0))

        # multiply
        self.assertTrue(np.array_equal(m * 2.0, matrix44.create_identity()[:] * 2.0))
        self.assertTrue(np.array_equal(m * 2, matrix44.create_identity()[:] * 2.0))
        self.assertTrue(np.array_equal(m * np.float(2.), matrix44.create_identity()[:] * 2.0))
        self.assertTrue(np.array_equal(m * fv[0]['f'], matrix44.create_identity()[:] * 2.0))
        self.assertTrue(np.array_equal(m * fv[0]['i'], matrix44.create_identity()[:] * 2.0))

        # divide
        self.assertTrue(np.array_equal(m / 2.0, matrix44.create_identity()[:] / 2.0))
        self.assertTrue(np.array_equal(m / 2, matrix44.create_identity()[:] / 2.0))
        self.assertTrue(np.array_equal(m / np.float(2.), matrix44.create_identity()[:] / 2.0))
        self.assertTrue(np.array_equal(m / fv[0]['f'], matrix44.create_identity()[:] / 2.0))
        self.assertTrue(np.array_equal(m / fv[0]['i'], matrix44.create_identity()[:] / 2.0))
Ejemplo n.º 2
0
    def test_operators_matrix44(self):
        m1 = Matrix44.identity()
        m2 = Matrix44.from_x_rotation(0.5)

        # add
        self.assertTrue(
            np.array_equal(
                m1 + m2,
                matrix44.create_identity() +
                matrix44.create_from_x_rotation(0.5)))

        # subtract
        self.assertTrue(
            np.array_equal(
                m1 - m2,
                matrix44.create_identity() -
                matrix44.create_from_x_rotation(0.5)))

        # multiply
        self.assertTrue(
            np.array_equal(
                m1 * m2,
                matrix44.multiply(matrix44.create_identity(),
                                  matrix44.create_from_x_rotation(0.5))))

        # divide
        self.assertRaises(ValueError, lambda: m1 / m2)

        # inverse
        self.assertTrue(
            np.array_equal(
                ~m2, matrix44.inverse(matrix44.create_from_x_rotation(0.5))))
Ejemplo n.º 3
0
    def test_create_from_matrix44(self):
        m1 = Matrix44.identity()
        m = Matrix33.from_matrix44(m1)
        self.assertTrue(np.array_equal(m, np.eye(3)))

        m = Matrix33(m1)
        self.assertTrue(np.array_equal(m, np.eye(3)))
Ejemplo n.º 4
0
    def test_create_from_matrix44(self):
        m1 = Matrix44.identity()
        m = Matrix33.from_matrix44(m1)
        self.assertTrue(np.array_equal(m, np.eye(3)))

        m = Matrix33(m1)
        self.assertTrue(np.array_equal(m, np.eye(3)))
Ejemplo n.º 5
0
    def test_operators_matrix44(self):
        m1 = Matrix44.identity()
        m2 = Matrix44.from_x_rotation(0.5)

        # add
        self.assertTrue(np.array_equal(m1 + m2, matrix44.create_identity() + matrix44.create_from_x_rotation(0.5)))

        # subtract
        self.assertTrue(np.array_equal(m1 - m2, matrix44.create_identity() - matrix44.create_from_x_rotation(0.5)))

        # multiply
        self.assertTrue(np.array_equal(m1 * m2, matrix44.multiply(matrix44.create_from_x_rotation(0.5), matrix44.create_identity())))

        # divide
        self.assertRaises(ValueError, lambda: m1 / m2)

        # inverse
        self.assertTrue(np.array_equal(~m2, matrix44.inverse(matrix44.create_from_x_rotation(0.5))))

        # ==
        self.assertTrue(Matrix44() == Matrix44())
        self.assertFalse(Matrix44() == Matrix44([1. for n in range(16)]))

        # !=
        self.assertTrue(Matrix44() != Matrix44([1. for n in range(16)]))
        self.assertFalse(Matrix44() != Matrix44())
Ejemplo n.º 6
0
    def test_operators_number(self):
        m = Matrix44.identity()
        fv = np.empty((1,), dtype=[('i', np.int16, 1),('f', np.float32, 1)])
        fv[0] = (2, 2.0)

        # add
        self.assertTrue(np.array_equal(m + 1.0, matrix44.create_identity()[:] + 1.0))
        self.assertTrue(np.array_equal(m + 1, matrix44.create_identity()[:] + 1.0))
        self.assertTrue(np.array_equal(m + np.float(1.), matrix44.create_identity()[:] + 1.0))
        self.assertTrue(np.array_equal(m + fv[0]['f'], matrix44.create_identity()[:] + 2.0))
        self.assertTrue(np.array_equal(m + fv[0]['i'], matrix44.create_identity()[:] + 2.0))

        # subtract
        self.assertTrue(np.array_equal(m - 1.0, matrix44.create_identity()[:] - 1.0))
        self.assertTrue(np.array_equal(m - 1, matrix44.create_identity()[:] - 1.0))
        self.assertTrue(np.array_equal(m - np.float(1.), matrix44.create_identity()[:] - 1.0))
        self.assertTrue(np.array_equal(m - fv[0]['f'], matrix44.create_identity()[:] - 2.0))
        self.assertTrue(np.array_equal(m - fv[0]['i'], matrix44.create_identity()[:] - 2.0))

        # multiply
        self.assertTrue(np.array_equal(m * 2.0, matrix44.create_identity()[:] * 2.0))
        self.assertTrue(np.array_equal(m * 2, matrix44.create_identity()[:] * 2.0))
        self.assertTrue(np.array_equal(m * np.float(2.), matrix44.create_identity()[:] * 2.0))
        self.assertTrue(np.array_equal(m * fv[0]['f'], matrix44.create_identity()[:] * 2.0))
        self.assertTrue(np.array_equal(m * fv[0]['i'], matrix44.create_identity()[:] * 2.0))

        # divide
        self.assertTrue(np.array_equal(m / 2.0, matrix44.create_identity()[:] / 2.0))
        self.assertTrue(np.array_equal(m / 2, matrix44.create_identity()[:] / 2.0))
        self.assertTrue(np.array_equal(m / np.float(2.), matrix44.create_identity()[:] / 2.0))
        self.assertTrue(np.array_equal(m / fv[0]['f'], matrix44.create_identity()[:] / 2.0))
        self.assertTrue(np.array_equal(m / fv[0]['i'], matrix44.create_identity()[:] / 2.0))
Ejemplo n.º 7
0
    def test_operators_vector4(self):
        m = Matrix44.identity()
        v = Vector4([1,1,1,1])

        # add
        self.assertRaises(ValueError, lambda: m + v)

        # subtract
        self.assertRaises(ValueError, lambda: m - v)

        # multiply
        self.assertTrue(np.array_equal(m * v, matrix44.apply_to_vector(matrix44.create_identity(), [1,1,1,1])))

        # divide
        self.assertRaises(ValueError, lambda: m / v)
Ejemplo n.º 8
0
    def test_operators_matrix33(self):
        m1 = Matrix44.identity()
        m2 = Matrix33.from_x_rotation(0.5)

        # add
        self.assertTrue(np.array_equal(m1 + m2, matrix44.create_identity() + matrix44.create_from_x_rotation(0.5)))

        # subtract
        self.assertTrue(np.array_equal(m1 - m2, matrix44.create_identity() - matrix44.create_from_x_rotation(0.5)))

        # multiply
        self.assertTrue(np.array_equal(m1 * m2, matrix44.multiply(matrix44.create_identity(), matrix44.create_from_x_rotation(0.5))))

        # divide
        self.assertRaises(ValueError, lambda: m1 / m2)
Ejemplo n.º 9
0
    def test_operators_vector4(self):
        m = Matrix44.identity()
        v = Vector4([1,1,1,1])
        
        # add
        self.assertRaises(ValueError, lambda: m + v)

        # subtract
        self.assertRaises(ValueError, lambda: m - v)

        # multiply
        self.assertTrue(np.array_equal(m * v, matrix44.apply_to_vector(matrix44.create_identity(), [1,1,1,1])))

        # divide
        self.assertRaises(ValueError, lambda: m / v)
Ejemplo n.º 10
0
    def test_operators_quaternion(self):
        m = Matrix44.identity()
        q = Quaternion.from_x_rotation(0.7)
        
        # add
        self.assertRaises(ValueError, lambda: m + q)

        # subtract
        self.assertRaises(ValueError, lambda: m - q)

        # multiply
        self.assertTrue(np.array_equal(m * q, matrix44.multiply(matrix44.create_identity(), matrix44.create_from_quaternion(quaternion.create_from_x_rotation(0.7)))))

        # divide
        self.assertRaises(ValueError, lambda: m / q)
Ejemplo n.º 11
0
    def test_operators_quaternion(self):
        m = Matrix44.identity()
        q = Quaternion.from_x_rotation(0.7)

        # add
        self.assertRaises(ValueError, lambda: m + q)

        # subtract
        self.assertRaises(ValueError, lambda: m - q)

        # multiply
        self.assertTrue(np.array_equal(m * q, matrix44.multiply(matrix44.create_from_quaternion(quaternion.create_from_x_rotation(0.7)), matrix44.create_identity())))

        # divide
        self.assertRaises(ValueError, lambda: m / q)
Ejemplo n.º 12
0
 def test_identity(self):
     m = Matrix44.identity()
     self.assertTrue(np.array_equal(m, np.eye(4)))
Ejemplo n.º 13
0
 def test_matrix44(self):
     m1 = Matrix44.identity() * Matrix44.from_x_rotation(0.5)
     m = m1.matrix44
     self.assertTrue(m1 is m)
Ejemplo n.º 14
0
 def test_inverse(self):
     m1 = Matrix44.identity() * Matrix44.from_x_rotation(0.5)
     m = m1.inverse
     self.assertTrue(np.array_equal(m, matrix44.inverse(m1)))
Ejemplo n.º 15
0
 def test_matrix33(self):
     m1 = Matrix44.identity() * Matrix44.from_x_rotation(0.5)
     m = m1.matrix33
     self.assertTrue(np.array_equal(m, matrix33.create_from_matrix44(m1)))
Ejemplo n.º 16
0
 def test_inverse(self):
     m1 = Matrix44.identity() * Matrix44.from_x_rotation(0.5)
     m = m1.inverse
     self.assertTrue(np.array_equal(m, matrix44.inverse(m1)))
Ejemplo n.º 17
0
 def test_matrix33(self):
     m1 = Matrix44.identity() * Matrix44.from_x_rotation(0.5)
     m = m1.matrix33
     self.assertTrue(np.array_equal(m, matrix33.create_from_matrix44(m1)))
Ejemplo n.º 18
0
 def test_identity(self):
     m = Matrix44.identity()
     self.assertTrue(np.array_equal(m, np.eye(4)))
Ejemplo n.º 19
0
 def test_matrix44(self):
     m1 = Matrix44.identity() * Matrix44.from_x_rotation(0.5)
     m = m1.matrix44
     self.assertTrue(m1 is m)