code: def testShapes(self):
      seed_stream = test_util.test_seed_stream()
      df = np.array([1.0, 2.0, 3.0], dtype=self.dtype)
      loc = tf.random.normal(
          shape=[5, 1, 2, 3], seed=seed_stream(), dtype=self.dtype
      )
      scale_row = tf.linalg.LinearOperatorLowerTriangular(
          self._random_tril_matrix([7, 1, 1, 2, 2], seed_stream()),
          is_non_singular=True,
      )
      scale_col = tf.linalg.LinearOperatorLowerTriangular(
          self._random_tril_matrix([9, 1, 1, 1, 3, 3], seed_stream()),
          is_non_singular=True,
      )
  
      matrix_t = mtlo.MatrixTLinearOperator(
          df, loc, scale_row, scale_col, validate_args=True
      )
  
      self.assertAllEqual((2, 3), matrix_t.event_shape)
      self.assertAllEqual((9, 7, 5, 3), matrix_t.batch_shape)
  
      self.assertAllEqual(
          (2, 3), self.evaluate(matrix_t.event_shape_tensor())
      )
      self.assertAllEqual(
          (9, 7, 5, 3), self.evaluate(matrix_t.batch_shape_tensor())
      )
  
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import shift
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.bijectors import transform_diagonal
  from tensorflow_probability.python.distributions import matrix_t_linear_operator
  from tensorflow_probability.python.distributions import multivariate_student_t
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 5 for calling the _MatrixTTest obj's underlying member method code with example usage: obj.testShapes() without return types