code: def testReparametrizable(self, dtype=np.float32):
      loc = dtype(0.1)
      scale = dtype(1.1)
      low = dtype(-10.0)
      high = dtype(5.0)
  
      def f(loc, scale, low, high):
          dist = truncated_normal.TruncatedNormal(
              loc=loc,
              scale=scale,
              low=low,
              high=high,
              validate_args=True,
          )
  
          n = int(2e5)
          return tf.reduce_mean(
              tf.abs(dist.sample(n, seed=test_util.test_seed()))
          )
  
      err = self.compute_max_gradient_error(
          f, [loc, scale, low, high], delta=0.1
      )
  
      # These gradients are noisy due to sampling.
      self.assertLess(err, 0.05)
  
imports: import itertools
  import unittest
  from absl.testing import parameterized
  import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import truncated_normal
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 15 for calling the TruncatedNormalStandaloneTestCase obj's underlying member method code with example usage: obj.testReparametrizable(dtype) and returns: tf