code: def test_default(self):
      aff_c = AffineWarpConstraints()
      self.assertAllEqual(
          aff_c.constraints, ((None, None, None), (None, None, None))
      )
      self.assertAllClose(aff_c.num_free_params, 6)
      self.assertAllClose(aff_c.num_dim, 2)
  
      customise_constraints = (
          (None, None, 1, 1),
          (None, None, None, 2),
          (None, 1, None, 3),
      )
      aff_c = AffineWarpConstraints(customise_constraints)
      self.assertEqual(aff_c.constraints, customise_constraints)
  
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 1 for calling the AffineWarpConstraintsTest obj's underlying member method code with example usage: obj.test_default() without return types