code: def testIncorrectRankInput(self):
      c = conv.ConvND(
          num_spatial_dims=2,
          output_channels=1,
          kernel_shape=3,
          data_format="NHWC",
      )
      with self.assertRaisesRegex(
          ValueError, "Shape .* must have rank 4"
      ):
          c(tf.ones([2, 4, 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 4 for calling the ConvTest obj's underlying member method code with example usage: obj.testIncorrectRankInput() without return types