code: def test_sample_with_prefix_of_values(self, sampler_type):
      num_rows = 4
      num_columns = 5
  
      def dist():
          a = yield sample_lib.Sample(
              normal.Normal(0.0, 1.0), num_rows, name="a"
          )
          b = yield sample_lib.Sample(
              normal.Normal(0.0, 1.0), num_columns, name="b"
          )
          yield normal.Normal(
              a[..., None] * b[None, ...], 1.0, name="c"
          )
  
      tuple_joint = jdab.JointDistributionCoroutineAutoBatched(
          dist, validate_args=True
      )
      namedtuple_joint = jdab.JointDistributionCoroutineAutoBatched(
          dist,
          sample_dtype=collections.namedtuple(
              "ModelSpec", ["a", "b", "c"]
          )(a=tf.float32, b=tf.float32, c=tf.float32),
          validate_args=True,
      )
  
      value_partial_batch_dim = 3
      v0 = 3.0 * np.ones([value_partial_batch_dim, num_rows]).astype(
          np.float32
      )
  
      # Tuple (or namedtuple) value contains only the first variable.
      tuple_value = (v0,)
      namedtuple_value = collections.namedtuple("ValueSpec", ["a"])(
          a=v0
      )
  
      for joint in (tuple_joint, namedtuple_joint):
          for value in (tuple_value, namedtuple_value):
              xs = self.evaluate(
                  joint.sample(
                      value=value,
                      seed=test_util.test_seed(
                          sampler_type=sampler_type
                      ),
                  )
              )
              self.assertAllEqual(xs[0], v0)
              self.assertAllEqual(
                  xs[1].shape, [value_partial_batch_dim, num_columns]
              )
              self.assertAllEqual(
                  xs[2].shape,
                  [value_partial_batch_dim, num_rows, num_columns],
              )
  
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 13 for calling the JointDistributionAutoBatchedTest obj's underlying member method code with example usage: obj.test_sample_with_prefix_of_values(sampler_type) without return types