class_docstr: Well tested because this is a simple override of the base class.
code: def testDynamicEventShape(self):
      if tf.executing_eagerly():
          return
      loc = np.float32(self._rng.rand(2, 3, 2))
      scale_diag = np.float32(self._rng.rand(2, 3, 2))
      mvn = mvn_diag.MultivariateNormalDiag(
          loc=tf1.placeholder_with_default(loc, shape=[2, 3, None]),
          scale_diag=tf1.placeholder_with_default(
              scale_diag, shape=[2, 3, None]
          ),
          validate_args=True,
      )
      self.assertListEqual(
          tensorshape_util.as_list(mvn.batch_shape), [2, 3]
      )
      self.assertListEqual(
          tensorshape_util.as_list(mvn.event_shape), [None]
      )
  
imports: import os
  from absl.testing import parameterized
  import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import lognormal
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 16 for calling the MultivariateNormalDiagTest obj's underlying member method code with example usage: obj.testDynamicEventShape() without return types