code: def testVariableParameters(self):
      df = tf.Variable(2.0, dtype=self.dtype)
      loc = tf.Variable(0.0, dtype=self.dtype)
      scale = tf.Variable(1.0, dtype=self.dtype)
      skewness = tf.Variable(1.0, dtype=self.dtype)
      dist = two_piece_student_t.TwoPieceStudentT(
          df=df,
          loc=loc,
          scale=scale,
          skewness=skewness,
          validate_args=True,
      )
  
      self.evaluate([v.initializer for v in dist.variables])
      self.assertIs(df, dist.df)
      self.assertIs(loc, dist.loc)
      self.assertIs(scale, dist.scale)
      self.assertIs(skewness, dist.skewness)
      self.assertEqual(0.0, self.evaluate(dist.mean()))
  
      with self.assertRaisesOpError("Argument `df` must be positive."):
          with tf.control_dependencies([df.assign(0.0)]):
              self.evaluate(dist.mean())
  
      with self.assertRaisesOpError(
          "Argument `scale` must be positive."
      ):
          with tf.control_dependencies(
              [df.assign(2.0), scale.assign(0.0)]
          ):
              self.evaluate(dist.mean())
  
      with self.assertRaisesOpError(
          "Argument `skewness` must be positive."
      ):
          with tf.control_dependencies(
              [scale.assign(1.0), skewness.assign(0.0)]
          ):
              self.evaluate(dist.mean())
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import two_piece_student_t
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 21 for calling the _TwoPieceStudentTTest obj's underlying member method code with example usage: obj.testVariableParameters() without return types