code: def testFunction(self, with_bias, padding):
      conv1 = conv.ConvND(
          num_spatial_dims=2,
          output_channels=1,
          kernel_shape=3,
          stride=1,
          padding=padding,
          with_bias=with_bias,
          data_format="NHWC",
          **create_constant_initializers(1.0, 1.0, with_bias),
      )
      conv2 = conv.ConvND(
          num_spatial_dims=2,
          output_channels=1,
          kernel_shape=3,
          stride=1,
          padding=padding,
          with_bias=with_bias,
          data_format="NHWC",
          **create_constant_initializers(1.0, 1.0, with_bias),
      )
      defun_conv = tf.function(conv2)
  
      iterations = 5
  
      for _ in range(iterations):
          x = tf.random.uniform([1, 5, 5, 1])
          y1 = conv1(x)
          y2 = defun_conv(x)
  
          self.assertAllClose(
              self.evaluate(y1), self.evaluate(y2), atol=1e-4
          )
  
imports: from absl.testing import parameterized
  import numpy
  from sonnet.src import conv
  from sonnet.src import initializers
  from sonnet.src import test_utils
  import tensorflow
label_desc: Use image node_id 6 for calling the ConvTest obj's underlying member method code with example usage: obj.testFunction(with_bias, padding) without return types