code: def test_sample_with_batch_value(self):
      @jdab.JointDistributionCoroutineAutoBatched
      def dist():
          a = yield sample_lib.Sample(normal.Normal(0, 1.0), 2)
          b = yield sample_lib.Sample(normal.Normal(0, 1.0), 3)
          # The following line fails if not autovectorized.
          yield normal.Normal(
              a[tf.newaxis, ...] * b[..., tf.newaxis], 1.0
          )
  
      x = self.evaluate(dist.sample(123, seed=test_util.test_seed()))
      x2 = self.evaluate(
          dist.sample(value=x, seed=test_util.test_seed())
      )
      self.assertAllCloseNested(x, x2)
  
      # Also test a dict-type value (JDNamed).
      dist = jdab.JointDistributionNamedAutoBatched(
          {
              "a": sample_lib.Sample(normal.Normal(0, 1.0), 2),
              "b": sample_lib.Sample(normal.Normal(0, 1.0), 3),
              "c": lambda a, b: normal.Normal(  # pylint: disable=g-long-lambda
                  a[tf.newaxis, ...] * b[..., tf.newaxis], 1.0
              ),
          }
      )
      x = self.evaluate(dist.sample(123, seed=test_util.test_seed()))
      x2 = self.evaluate(
          dist.sample(value=x, seed=test_util.test_seed())
      )
      self.assertAllCloseNested(x, x2)
  
imports: import collections
  import os
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import bijector_test_util
  from tensorflow_probability.python.bijectors import exp
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.distributions import bernoulli
  from tensorflow_probability.python.distributions import deterministic
  from tensorflow_probability.python.distributions import dirichlet
  from tensorflow_probability.python.distributions import exponential
  from tensorflow_probability.python.distributions import half_normal
  from tensorflow_probability.python.distributions import inverse_gamma
  from tensorflow_probability.python.distributions import joint_distribution_auto_batched
  from tensorflow_probability.python.distributions import joint_distribution_coroutine
  from tensorflow_probability.python.distributions import joint_distribution_named
  from tensorflow_probability.python.distributions import joint_distribution_sequential
  from tensorflow_probability.python.distributions import lognormal
  from tensorflow_probability.python.distributions import multinomial
  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 student_t
  from tensorflow_probability.python.distributions import transformed_distribution
  from tensorflow_probability.python.distributions import uniform
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.util import deferred_tensor
label_desc: Use image node_id 10 for calling the JointDistributionAutoBatchedTest obj's underlying member method code with example usage: obj.test_sample_with_batch_value() without return types