code: def testVonMisesShape(self):
      loc = self.make_tensor([0.1] * 5)
      concentration = self.make_tensor([0.2] * 5)
      dist = von_mises.VonMises(
          loc=loc, concentration=concentration, validate_args=True
      )
  
      self.assertEqual(
          [
              5,
          ],
          self.evaluate(dist.batch_shape_tensor()),
      )
      self.assertAllEqual([], self.evaluate(dist.event_shape_tensor()))
      if self.use_static_shape:
          self.assertEqual(tf.TensorShape([5]), dist.batch_shape)
      self.assertEqual(tf.TensorShape([]), dist.event_shape)
  
      # Let's also make sure that shape information propagates through sampling as
      # expected.
      samples = dist.sample(
          self.make_tensor(7), seed=test_util.test_seed()
      )
      if tf.executing_eagerly():
          self.assertEqual(tf.TensorShape([7, 5]), samples.shape)
      elif self.use_static_shape:
          # n is a placeholder, therefore its value is statically unknown, even
          # though its shape is
          self.assertIsNone(samples.shape.as_list()[0])
          self.assertEqual(5, samples.shape[1])
      else:
          self.assertEqual(tf.TensorShape(None), samples.shape)
      self.assertEqual(
          tf.TensorShape([7, 5]), self.evaluate(samples).shape
      )
  
imports: import numpy
  from scipy import special
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import von_mises
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 2 for calling the _VonMisesTest obj's underlying member method code with example usage: obj.testVonMisesShape() without return types