code: def test_approx_quantile_gradient(self, dtype, max_err):
      if tf.executing_eagerly() and not JAX_MODE:
          self.skipTest("Eager test is too slow.")
  
      df = tf.constant(
          [2.0, np.e, 0.01, 0.5, 1.0, 1.5, 3.1, 4.0, 10.0, 20.0, 100.3],
          dtype=dtype,
      )[..., tf.newaxis]
      nc = tf.constant(
          [0.0, 0.01, 0.1, 0.5, 1.0, 1.5, 3.1, 4.0, 10.0, 20.0, 100.2],
          dtype=dtype,
      )[..., tf.newaxis]
  
      ps = tf.constant([0.1, 0.3, 0.5, 0.7, 0.9], dtype=dtype)
  
      quantile_fn = tf.function(
          noncentral_chi2.NoncentralChi2(df, nc).quantile_approx,
          autograph=False,
      )
  
      err = self.compute_max_gradient_error(quantile_fn, [ps])
      self.assertLess(err, max_err)
  
imports: from absl.testing import parameterized
  import numpy
  from scipy import stats
  import tensorflow
  from tensorflow_probability.python.distributions import noncentral_chi2
  from tensorflow_probability.python.distributions.internal import statistical_testing
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 16 for calling the NoncentralChi2Test obj's underlying member method code with example usage: obj.test_approx_quantile_gradient(dtype, max_err) without return types