code: def test_unpin(self):
      root = jdc.JointDistributionCoroutine.Root
  
      @jdc.JointDistributionCoroutine
      def model():
          loc = yield root(normal.Normal(0.0, 1.0, name="loc"))
          scl = yield root(gamma.Gamma(1.0, 1.0, name="scl"))
          _ = yield normal.Normal(loc, scl, name="y")
  
      p = model.experimental_pin(y=0.5)
      self.assertIs(model, p.unpin("y"))
  
      p = model.experimental_pin(scl=1.0, y=0.5)
      self.assertEqual(["scl"], list(p.unpin("y").pins))
      self.assertEqual(["y"], list(p.unpin("scl").pins))
      self.assertIs(model, p.unpin("y", "scl"))
      with self.assertRaisesWithPredicateMatch(
          ValueError, r"Unrecognized.*'foo'.*['scl', 'y']"
      ):
          p.unpin("foo", "y")
  
imports: import collections
  import functools
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import pad
  from tensorflow_probability.python.distributions import beta
  from tensorflow_probability.python.distributions import binomial
  from tensorflow_probability.python.distributions import cholesky_lkj
  from tensorflow_probability.python.distributions import gamma
  from tensorflow_probability.python.distributions import independent
  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 multinomial
  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 uniform
  from tensorflow_probability.python.experimental.distributions import increment_log_prob
  from tensorflow_probability.python.experimental.distributions import joint_distribution_pinned
  from tensorflow_probability.python.internal import structural_tuple
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import generic
label_desc: Use image node_id 16 for calling the JointDistributionPinnedTest obj's underlying member method code with example usage: obj.test_unpin() without return types