def test_scale_translate_rotate_compose(): coord = [10, 13] transform_a = Affine(scale=[2, 3], translate=[8, -5], rotate=25) transform_b = Affine(scale=[0.3, 1.4], translate=[-2.2, 3], rotate=65) transform_c = transform_b.compose(transform_a) new_coord_1 = transform_c(coord) new_coord_2 = transform_b(transform_a(coord)) npt.assert_allclose(new_coord_1, new_coord_2)
def test_affine_matrix_compose(dimensionality): np.random.seed(0) N = dimensionality A = np.eye(N + 1) A[:-1, :-1] = np.random.random((N, N)) A[:-1, -1] = np.random.random(N) B = np.eye(N + 1) B[:-1, :-1] = np.random.random((N, N)) B[:-1, -1] = np.random.random(N) # Create transform transform_A = Affine(affine_matrix=A) transform_B = Affine(affine_matrix=B) # Check affine was passed correctly np.testing.assert_almost_equal(transform_A.affine_matrix, A) np.testing.assert_almost_equal(transform_B.affine_matrix, B) # Compose tranform and directly matrix multiply transform_C = transform_B.compose(transform_A) C = B @ A np.testing.assert_almost_equal(transform_C.affine_matrix, C)