def test_transform_matrix(self): """ Tests that transform() on matrix returns a 4x4 matrix, always """ arr3, arr4 = np.random.random((3, 3)), np.random.random((4, 4)) mat3, mat4 = np.eye(3), np.eye(4) for mat, arr in product([mat3, mat4], [arr3, arr4]): self.assertSequenceEqual(tr.transform(mat, arr).shape, (4, 4))
def test_transform_vector(self): """ Tests that transform() on vector returns a vector """ vec = np.random.random((3,)) # Test for vector of length 3 mat3, mat4 = np.eye(3), np.eye(4) for mat in [mat3, mat4]: self.assertSequenceEqual(vec.shape, tr.transform(mat, vec).shape)
def test_random(self): """ Test that translation_rotation_matrix() produces a matrix that correctly transforms a random point """ pt = np.random.random((3,)) axis = np.random.random((3,)) angle = np.random.random() translation = np.random.random((3,)) trmat = tr.translation_rotation_matrix(angle, axis, translation=translation) v1 = tr.transform(trmat, pt) # translated rotated point # Transform the point once operator at a time v2 = tr.transform(tr.rotation_matrix(angle, axis), pt) v2 += translation self.assertTrue(np.allclose(v1, v2))
def test_transform_vector(): """ Tests that transform() on vector returns a vector """ vec = np.random.random((3, )) # Test for vector of length 3 mat3, mat4 = np.eye(3), np.eye(4) for mat in [mat3, mat4]: assert vec.shape == tr.transform(mat, vec).shape
def test_random(self): """ Tests that translation_matrix() has the same effect on a point as directly translating.""" pt = np.random.random((3,)) translation = np.random.random((3,)) mat = tr.translation_matrix(translation) transformed = tr.transform(mat, pt) self.assertTrue(np.allclose(pt + translation, transformed))