code: def test_union():
      tform1 = SimilarityTransform(scale=0.1, rotation=0.3)
      tform2 = SimilarityTransform(scale=0.1, rotation=0.9)
      tform3 = SimilarityTransform(scale=0.1**2, rotation=0.3 + 0.9)
      tform = tform1 + tform2
      assert_almost_equal(tform.params, tform3.params)
  
      tform1 = AffineTransform(scale=(0.1, 0.1), rotation=0.3)
      tform2 = SimilarityTransform(scale=0.1, rotation=0.9)
      tform3 = SimilarityTransform(scale=0.1**2, rotation=0.3 + 0.9)
      tform = tform1 + tform2
      assert_almost_equal(tform.params, tform3.params)
      assert tform.__class__ == ProjectiveTransform
  
      tform = AffineTransform(scale=(0.1, 0.1), rotation=0.3)
      assert_almost_equal((tform + tform.inverse).params, np.eye(3))
  
      tform1 = SimilarityTransform(scale=0.1, rotation=0.3)
      tform2 = SimilarityTransform(scale=0.1, rotation=0.9)
      tform3 = SimilarityTransform(
          scale=0.1 * 1 / 0.1, rotation=0.3 - 0.9
      )
      tform = tform1 + tform2.inverse
      assert_almost_equal(tform.params, tform3.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 32 for calling a global function with example usage: test_union() without return types