code: def test_sample_kwargs(self):
      joint = jdn.JointDistributionNamed(
          dict(
              a=normal.Normal(0.0, 1.0),
              b=lambda a: normal.Normal(a, 1.0),
              c=lambda a, b: normal.Normal(a + b, 1.0),
          )
      )
  
      seed = test_util.test_seed()
      tf.random.set_seed(seed)
      samples = joint.sample(seed=seed, a=1.0)
      # Check the first value is actually 1.
      self.assertEqual(1.0, self.evaluate(samples["a"]))
  
      # Check the sample is reproducible using the `value` argument.
      tf.random.set_seed(seed)
      samples_named = joint.sample(seed=seed, value={"a": 1.0})
      self.assertAllEqual(
          self.evaluate(samples), self.evaluate(samples_named)
      )
  
      # Make sure to throw an exception if strange keywords are passed.
      expected_error = (
          "Found unexpected keyword arguments. Distribution names are\n"
          "a, b, c\n"
          "but received\n"
          "z\n"
          "These names were invalid:\n"
          "z"
      )
      with self.assertRaisesRegex(ValueError, expected_error):
          joint.sample(seed=seed, z=2.0)
  
      # Raise if value and keywords are passed.
      with self.assertRaisesRegex(
          ValueError, r"Supplied both `value` and keyword arguments .*"
      ):
          joint.sample(seed=seed, a=1.0, value={"a": 1})
  
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 22 for calling the JointDistributionNamedTest obj's underlying member method code with example usage: obj.test_sample_kwargs() without return types