code: def testQuantilesBroadcasting(self):
      loc = tf.constant([0.1, 0.2])[:, tf.newaxis, tf.newaxis]
      scale = tf.constant([0.9, 1.0, 1.1])[:, tf.newaxis]
      concentration = tf.constant([0.0, 0.4, 0.5, 0.6, 1.0])
  
      d = gp.GeneralizedPareto(
          loc=loc,
          scale=scale,
          concentration=concentration,
          validate_args=True,
      )
      p = tf.linspace(0.0, 1.0, 1000)[1:-1][
          :, tf.newaxis, tf.newaxis, tf.newaxis
      ]
      q = d.quantile(p)
      self.assertAllFinite(q)
  
      loc_numpy = self.evaluate(loc)
      scale_numpy = self.evaluate(scale)
      conc_numpy = self.evaluate(concentration)
  
      q_scipys = []
      for i in range(5):
          q_scipys.append(
              sp_stats.genpareto.ppf(
                  np.linspace(0.0, 1.0, 1000)[1:-1].reshape(
                      998, 1, 1, 1
                  ),
                  conc_numpy[i].reshape(1, 1, 1, 1),
                  loc_numpy.reshape(1, 2, 1, 1),
                  scale_numpy.reshape(1, 1, 3, 1),
              )
          )
      q_scipy = np.concatenate(q_scipys, axis=-1)
  
      print(q.shape, q_scipy.shape)
      self.assertAllClose(q, q_scipy, rtol=1.0e-5)
  
imports: import hypothesis
  import hypothesis.strategies
  import numpy
  from scipy import stats
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import generalized_pareto
  from tensorflow_probability.python.internal import hypothesis_testlib
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 23 for calling the GeneralizedParetoTest obj's underlying member method code with example usage: obj.testQuantilesBroadcasting() without return types