code: def test_shape_validation(self):
      with self.assertRaisesRegexp(ValueError, "is invalid"):
          example_encoding._validate_shape([1, 2, 3, -1])
  
      with self.assertRaisesRegexp(ValueError, "is invalid"):
          example_encoding._validate_shape([1, None, 3])
  
      with self.assertRaisesRegexp(ValueError, "is invalid"):
          example_encoding._validate_shape([1, 2.3, 3])
  
file_path: agents/tf_agents/utils/example_encoding_test.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import parameterized
  import gin
  import numpy
  import tensorflow
  from tf_agents.specs import array_spec
  from tf_agents.utils import common
  from tf_agents.utils import example_encoding
label_desc: Use image node_id 3 for calling the NestExampleEncodeUtilsTest obj's underlying member method code with example usage: obj.test_shape_validation() without return types