code: def testBroadcasting(self, loc, df, diag, batch_shape):
      # Test that broadcasting works across all 3 parameters.
      loc = self._input(loc)
      df = self._input(df)
      diag = self._input(diag)
  
      scale = tf.linalg.LinearOperatorDiag(diag, is_non_singular=True)
      dist = mvst.MultivariateStudentTLinearOperator(
          loc=loc, df=df, scale=scale, validate_args=True
      )
  
      sample = dist.sample(3, seed=test_util.test_seed())
      log_prob = dist.log_prob(sample)
      mean = dist.mean()
      mode = dist.mode()
      cov = dist.covariance()
      std = dist.stddev()
      var = dist.variance()
      entropy = dist.entropy()
      if self.use_static_shape:
          self.assertAllEqual([3] + batch_shape + [2], sample.shape)
          self.assertAllEqual([3] + batch_shape, log_prob.shape)
          self.assertAllEqual(batch_shape + [2], mean.shape)
          self.assertAllEqual(batch_shape + [2], mode.shape)
          self.assertAllEqual(batch_shape + [2, 2], cov.shape)
          self.assertAllEqual(batch_shape + [2], std.shape)
          self.assertAllEqual(batch_shape + [2], var.shape)
          self.assertAllEqual(batch_shape, entropy.shape)
          self.assertAllEqual([2], dist.event_shape)
          self.assertAllEqual(batch_shape, dist.batch_shape)
  
      sample = self.evaluate(sample)
      log_prob = self.evaluate(log_prob)
      mean = self.evaluate(mean)
      mode = self.evaluate(mode)
      cov = self.evaluate(cov)
      std = self.evaluate(std)
      var = self.evaluate(var)
      entropy = self.evaluate(entropy)
      self.assertAllEqual([3] + batch_shape + [2], sample.shape)
      self.assertAllEqual([3] + batch_shape, log_prob.shape)
      self.assertAllEqual(batch_shape + [2], mean.shape)
      self.assertAllEqual(batch_shape + [2], mode.shape)
      self.assertAllEqual(batch_shape + [2, 2], cov.shape)
      self.assertAllEqual(batch_shape + [2], std.shape)
      self.assertAllEqual(batch_shape + [2], var.shape)
      self.assertAllEqual(batch_shape, entropy.shape)
      self.assertAllEqual([2], self.evaluate(dist.event_shape_tensor()))
      self.assertAllEqual(
          batch_shape, self.evaluate(dist.batch_shape_tensor())
      )
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import exp
  from tensorflow_probability.python.distributions import multivariate_student_t
  from tensorflow_probability.python.distributions import student_t
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
  from tensorflow_probability.python.util import deferred_tensor
label_desc: Use image node_id 2 for calling the MultivariateStudentTTestFloat32StaticShape obj's underlying member method code with example usage: obj.testBroadcasting(loc, df, diag, batch_shape) without return types