code: def test_prepare_tuple_argument(self):
      rank = 3
  
      # Test that scalars are processed to tuples.
      arg = convolution_util.prepare_tuple_argument(
          self.make_integer_input(2),
          n=rank,
          arg_name="arg",
          validate_args=True,
      )
      self.assertIsInstance(arg, list)
      self.assertLen(arg, rank)
  
      # Test that `Tensor` args are processed correctly.
      arg = convolution_util.prepare_tuple_argument(
          self.make_integer_input([2, 3, 4]),
          n=rank,
          arg_name="arg_2",
          validate_args=True,
      )
      self.assertIsInstance(arg, list)
      self.assertLen(arg, rank)
  
      with self.assertRaisesRegex(
          ValueError, "must be equal to `1` or to the rank"
      ):
          convolution_util.prepare_tuple_argument(
              self.make_integer_input([1, 2]),
              n=rank,
              arg_name="invalid_arg",
              validate_args=True,
          )
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.experimental.nn.util import convolution_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.internal import tf_keras
label_desc: Use image node_id 1 for calling the ConvolutionUtilsTest obj's underlying member method code with example usage: obj.test_prepare_tuple_argument() without return types