code: def testInverseGaussianShapeBroadcast(self):
      loc = self.make_tensor([[4.0], [5.0], [6.0]])
      concentration = self.make_tensor([[3.0, 2.0]])
      dist = inverse_gaussian.InverseGaussian(
          loc, concentration, validate_args=True
      )
  
      self.assertAllEqual(
          self.evaluate(dist.batch_shape_tensor()), (3, 2)
      )
      if self.use_static_shape:
          self.assertAllEqual(dist.batch_shape, tf.TensorShape([3, 2]))
      self.assertAllEqual(self.evaluate(dist.event_shape_tensor()), [])
      self.assertEqual(dist.event_shape, tf.TensorShape([]))
  
imports: import numpy
  from scipy import misc
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import inverse_gaussian
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 3 for calling the _InverseGaussianTest obj's underlying member method code with example usage: obj.testInverseGaussianShapeBroadcast() without return types