code: def test_2d(self):
      aff = tf.constant([[1, 0, 5, 0, 1, 6]], dtype=tf.float32)
      params = {"source_shape": (3, 3), "output_shape": (2, 2)}
      expected = [[[[5, 6], [5, 8]], [[7, 6], [7, 8]]]]
      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 4 for calling the AffineGridWarperLayerTest obj's underlying member method code with example usage: obj.test_2d() without return types