def test_multiply(self): m1 = Matrix33(np.arange(self._size)) m2 = Matrix33(np.arange(self._size)[::-1]) m = m1 * m2 self.assertTrue(np.array_equal(m, matrix33.multiply(m2, m1))) m1 = Matrix33(np.arange(self._size)) m2 = Matrix44(np.arange(16)) m = m1 * m2 self.assertTrue(np.array_equal(m, matrix33.multiply(matrix33.create_from_matrix44(m2), m1)))
def test_create(self): m = Matrix33() self.assertTrue(np.array_equal(m, np.zeros(self._shape))) self.assertEqual(m.shape, self._shape) m = Matrix33(np.arange(self._size)) self.assertEqual(m.shape, self._shape) m = Matrix33([[1,2,3],[4,5,6],[7,8,9]]) self.assertEqual(m.shape, self._shape) m = Matrix33(Matrix33()) self.assertTrue(np.array_equal(m, np.zeros(self._shape))) self.assertEqual(m.shape, self._shape)
def test_operators_matrix33(self): m1 = Matrix33.identity() m2 = Matrix33.from_x_rotation(0.5) # add self.assertTrue(np.array_equal(m1 + m2, matrix33.create_identity() + matrix33.create_from_x_rotation(0.5))) # subtract self.assertTrue(np.array_equal(m1 - m2, matrix33.create_identity() - matrix33.create_from_x_rotation(0.5))) # multiply self.assertTrue(np.array_equal(m1 * m2, matrix33.multiply(matrix33.create_from_x_rotation(0.5), matrix33.create_identity()))) # divide self.assertRaises(ValueError, lambda: m1 / m2) # inverse self.assertTrue(np.array_equal(~m2, matrix33.inverse(matrix33.create_from_x_rotation(0.5)))) # == self.assertTrue(Matrix33() == Matrix33()) self.assertFalse(Matrix33() == Matrix33([1. for n in range(9)])) # != self.assertTrue(Matrix33() != Matrix33([1. for n in range(9)])) self.assertFalse(Matrix33() != Matrix33())
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)))
def test_accessors(self): m = Matrix33(np.arange(self._size)) self.assertTrue(np.array_equal(m.m1,[0,1,2])) self.assertTrue(np.array_equal(m.m2,[3,4,5])) self.assertTrue(np.array_equal(m.m3,[6,7,8])) self.assertTrue(np.array_equal(m.r1,[0,1,2])) self.assertTrue(np.array_equal(m.r2,[3,4,5])) self.assertTrue(np.array_equal(m.r3,[6,7,8])) self.assertTrue(np.array_equal(m.c1,[0,3,6])) self.assertTrue(np.array_equal(m.c2,[1,4,7])) self.assertTrue(np.array_equal(m.c3,[2,5,8])) self.assertEqual(m.m11, 0) self.assertEqual(m.m12, 1) self.assertEqual(m.m13, 2) self.assertEqual(m.m21, 3) self.assertEqual(m.m22, 4) self.assertEqual(m.m23, 5) self.assertEqual(m.m31, 6) self.assertEqual(m.m32, 7) self.assertEqual(m.m33, 8) m.m11 = 1 self.assertEqual(m.m11, 1) self.assertEqual(m[0,0], 1) m.m11 += 1 self.assertEqual(m.m11, 2) self.assertEqual(m[0,0], 2)
def test_create_from_quaternion(self): q = Quaternion() m = Matrix33.from_quaternion(q) self.assertTrue(np.array_equal(m, np.eye(3))) self.assertTrue(np.array_equal(m.quaternion, q)) m = Matrix33(q) self.assertTrue(np.array_equal(m, np.eye(3)))