code: def test_mean(self, is_static, get_distributions, event_shape):
      dists, concat_dist = get_distributions(is_static=is_static)
      means = concat_dist.mean()
      self.assertAllEqual(
          self.evaluate(tf.shape(means)), [2, 6, 4] + event_shape
      )
      self.assertAllEqual(
          means[:, :3],
          tf.broadcast_to(dists[0].mean(), [2, 3, 4] + event_shape),
      )
      self.assertAllClose(
          means[:, 3:5],
          tf.broadcast_to(dists[1].mean(), [2, 2, 4] + event_shape),
      )
      self.assertAllClose(
          means[:, 5:],
          tf.broadcast_to(dists[2].mean(), [2, 1, 4] + event_shape),
      )
  
imports: from absl.testing import parameterized
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import batch_concat
  from tensorflow_probability.python.distributions import dirichlet
  from tensorflow_probability.python.distributions import exponential
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import logistic
  from tensorflow_probability.python.distributions import mvn_diag
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import onehot_categorical
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 12 for calling the BatchConcatTest obj's underlying member method code with example usage: obj.test_mean(is_static, get_distributions, event_shape) without return types