code: def test_mix_over_posterior_draws(self):
      num_posterior_draws = 3
      batch_shape = [2, 1]
      means = np.random.randn(
          *np.concatenate([[num_posterior_draws], batch_shape])
      )
      variances = np.exp(
          np.random.randn(
              *np.concatenate([[num_posterior_draws], batch_shape])
          )
      )
  
      posterior_mixture_dist = sts_util.mix_over_posterior_draws(
          self._build_tensor(means), self._build_tensor(variances)
      )
  
      # Compute the true statistics of the mixture distribution.
      mixture_mean = np.mean(means, axis=0)
      mixture_variance = (
          np.mean(variances + means**2, axis=0) - mixture_mean**2
      )
  
      self.assertAllClose(
          mixture_mean, self.evaluate(posterior_mixture_dist.mean())
      )
      self.assertAllClose(
          mixture_variance,
          self.evaluate(posterior_mixture_dist.variance()),
      )
  
imports: from absl.testing import parameterized
  import numpy
  import pandas
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.distributions import mvn_tril
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.sts.components import local_level
  from tensorflow_probability.python.sts.internal import missing_values_util
  from tensorflow_probability.python.sts.internal import util
label_desc: Use image node_id 4 for calling the _UtilityTests obj's underlying member method code with example usage: obj.test_mix_over_posterior_draws() without return types