code: def test_summary_statistic(self, attr):
      sample_shape = [5, 4]
      mvn = independent.Independent(
          normal.Normal(loc=tf.zeros([3, 2]), scale=1), 1
      )
      d = sample.Sample(mvn, sample_shape, validate_args=True)
      self.assertEqual((3,), d.batch_shape)
      expected_stat = getattr(mvn, attr)()[
          :, tf.newaxis, tf.newaxis, :
      ] * tf.ones([3, 5, 4, 2])
      actual_stat = getattr(d, attr)()
      self.assertAllEqual(*self.evaluate([expected_stat, actual_stat]))
  
imports: import functools
  import os
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import exp
  from tensorflow_probability.python.bijectors import scale
  from tensorflow_probability.python.bijectors import scale_matvec_tril
  from tensorflow_probability.python.distributions import cholesky_lkj
  from tensorflow_probability.python.distributions import exponential
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import log_prob_ratio
  from tensorflow_probability.python.distributions import logistic
  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 poisson
  from tensorflow_probability.python.distributions import sample
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.distributions import uniform
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 8 for calling the SampleDistributionTest obj's underlying member method code with example usage: obj.test_summary_statistic(attr) without return types