code: def testJohnsonSUQuantile(self):
      batch_size = 52
      skewness = self._rng.randn(batch_size)
      tailweight = self._rng.rand(batch_size) + 1.0
      mu = self._rng.randn(batch_size)
      sigma = self._rng.rand(batch_size) + 1.0
      p = np.linspace(0.0, 1.0, batch_size - 2).astype(np.float64)
      # Quantile performs piecewise rational approximation so adding some
      # special input values to make sure we hit all the pieces.
      p = np.hstack((p, np.exp(-33), 1.0 - np.exp(-33)))
  
      dist = johnson_su.JohnsonSU(
          skewness=skewness,
          tailweight=tailweight,
          loc=mu,
          scale=sigma,
          validate_args=True,
      )
      x = dist.quantile(p)
  
      self.assertAllEqual(
          self.evaluate(dist.batch_shape_tensor()), x.shape
      )
      self.assertAllEqual(
          self.evaluate(dist.batch_shape_tensor()),
          self.evaluate(x).shape,
      )
      self.assertAllEqual(dist.batch_shape, x.shape)
      self.assertAllEqual(dist.batch_shape, self.evaluate(x).shape)
  
      expected_x = sp_stats.johnsonsu.ppf(
          p, skewness, tailweight, mu, sigma
      )
      self.assertAllClose(expected_x, self.evaluate(x), atol=0.0)
  
imports: import math
  import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import johnson_su
  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 JohnsonSUTest obj's underlying member method code with example usage: obj.testJohnsonSUQuantile() without return types