code: def test_compose_decompose_matrix44(rng):
      for i in range(20):
          x0 = rng.random(12)
          mat = compose_matrix44(x0[:6])
          assert_array_almost_equal(
              x0[:6], decompose_matrix44(mat, size=6)
          )
          mat = compose_matrix44(x0[:7])
          assert_array_almost_equal(
              x0[:7], decompose_matrix44(mat, size=7)
          )
          mat = compose_matrix44(x0[:12])
          assert_array_almost_equal(
              x0[:12], decompose_matrix44(mat, size=12)
          )
  
      assert_raises(ValueError, decompose_matrix44, mat, 20)
  
imports: import numpy
  from numpy.testing import assert_, assert_equal, assert_almost_equal, assert_array_almost_equal, assert_raises
  from dipy.align.streamlinear import compose_matrix44, decompose_matrix44, BundleSumDistanceMatrixMetric, BundleMinDistanceMatrixMetric, BundleMinDistanceMetric, StreamlineLinearRegistration, StreamlineDistanceMetric, groupwise_slr, get_unique_pairs
  from dipy.tracking.streamline import center_streamlines, unlist_streamlines, relist_streamlines, transform_streamlines, set_number_of_points, Streamlines
  from dipy.io.streamline import load_tractogram
  from dipy.core.geometry import compose_matrix
  from dipy.data import get_fnames, two_cingulum_bundles, read_five_af_bundles
  from dipy.align.bundlemin import _bundle_minimum_distance_matrix, _bundle_minimum_distance, distance_matrix_mdf
  from dipy.testing.decorators import set_random_number_generator
label_desc: Use image node_id 20 for calling a global function with example usage: test_compose_decompose_matrix44(rng) without return types