code: def test_summary_statistic(self, attr):
      d = jdn.JointDistributionNamed(
          dict(
              logits=normal.Normal(0.0, 1.0),
              x=bernoulli.Bernoulli(logits=0.0),
          ),
          validate_args=True,
      )
      expected = {
          k: getattr(d.model[k], attr)() for k in d.model.keys()
      }
      actual = getattr(d, attr)()
      self.assertAllEqual(*self.evaluate([expected, actual]))
  
imports: import collections
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import bijector_test_util
  from tensorflow_probability.python.bijectors import scale
  from tensorflow_probability.python.distributions import bernoulli
  from tensorflow_probability.python.distributions import beta
  from tensorflow_probability.python.distributions import exponential
  from tensorflow_probability.python.distributions import gamma
  from tensorflow_probability.python.distributions import half_normal
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import joint_distribution_named
  from tensorflow_probability.python.distributions import joint_distribution_sequential
  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 sample
  from tensorflow_probability.python.distributions import student_t
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 13 for calling the JointDistributionNamedTest obj's underlying member method code with example usage: obj.test_summary_statistic(attr) without return types