code: def test_affine_estimation():
      # exact solution
      tform = estimate_transform("affine", SRC[:3, :], DST[:3, :])
      assert_almost_equal(tform(SRC[:3, :]), DST[:3, :])
  
      # over-determined
      tform2 = estimate_transform("affine", SRC, DST)
      assert_almost_equal(tform2.inverse(tform2(SRC)), SRC)
  
      # via estimate method
      tform3 = AffineTransform()
      assert tform3.estimate(SRC, DST)
      assert_almost_equal(tform3.params, tform2.params)
  
imports: import re
  import textwrap
  import numpy
  import pytest
  from numpy.testing import assert_almost_equal, assert_array_almost_equal, assert_equal
  from skimage.transform import AffineTransform, EssentialMatrixTransform, EuclideanTransform, FundamentalMatrixTransform, PiecewiseAffineTransform, PolynomialTransform, ProjectiveTransform, SimilarityTransform, estimate_transform, matrix_transform
  from skimage.transform._geometric import _GeometricTransform, _affine_matrix_from_vector, _center_and_normalize_points, _euler_rotation_matrix
label_desc: Use image node_id 9 for calling a global function with example usage: test_affine_estimation() without return types