code: def test_3d_2d(self):
      aff = tf.constant(
          [[1.5, 0, 0, 3, 0, 1.5, 0, 4, 0, 0, 1.0, 5]], dtype=tf.float32
      )
      params = {"source_shape": (3, 3, 3), "output_shape": (2, 2)}
      expected = [
          [
              [[2.5, 3.5, 5], [2.5, 6.5, 5]],
              [[5.5, 3.5, 5], [5.5, 6.5, 5]],
          ]
      ]
      self._test_correctness(params, aff, expected)
  
imports: from __future__ import absolute_import, print_function, division
  import numpy
  import tensorflow
  from niftynet.layer.grid_warper import AffineGridWarperLayer
  from niftynet.layer.grid_warper import AffineWarpConstraints
  from niftynet.layer.grid_warper import _create_affine_features
  from tests.niftynet_testcase import NiftyNetTestCase
label_desc: Use image node_id 6 for calling the AffineGridWarperLayerTest obj's underlying member method code with example usage: obj.test_3d_2d() without return types