code: def testFullyReparameterized(self):
      df = tf.constant(2.0)
      loc = tf.constant(1.0)
      sigma = tf.constant(3.0)
      _, [grad_df, grad_loc, grad_sigma] = gradient.value_and_gradient(
          lambda d, m, s: half_student_t.HalfStudentT(  # pylint: disable=g-long-lambda
              df=d, loc=m, scale=s, validate_args=True
          ).sample(
              100, seed=test_util.test_seed()
          ),
          [df, loc, sigma],
      )
      self.assertIsNotNone(grad_df)
      self.assertIsNotNone(grad_loc)
      self.assertIsNotNone(grad_sigma)
  
imports: import math
  import numpy
  from scipy import stats
  from scipy.special import gamma
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import half_student_t
  from tensorflow_probability.python.distributions.internal import statistical_testing
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 20 for calling the HalfStudentTTest obj's underlying member method code with example usage: obj.testFullyReparameterized() without return types