code: def testLogPDFBoundary(self):
      # When loc = concentration = 0, we have an exponential distribution. Check
      # that at 0 we have finite log prob.
      scale = np.array(
          [0.1, 0.5, 1.0, 2.0, 5.0, 10.0], dtype=np.float32
      )
      dist = gp.GeneralizedPareto(
          loc=0, scale=scale, concentration=0, validate_args=True
      )
      log_pdf = self.evaluate(dist.log_prob(0.0))
      self.assertAllClose(-np.log(scale), log_pdf, rtol=1e-5)
  
      # Log prob should be finite on the boundary regardless of parameters.
      loc = np.array([1.0, 2.0, 5.0]).astype(np.float32)
      scale = 2.0
      concentration = np.array([-5.0, -3.4, -1.0]).astype(np.float32)
      dist = gp.GeneralizedPareto(
          loc=loc,
          scale=scale,
          concentration=concentration,
          validate_args=True,
      )
      log_pdf_at_loc = self.evaluate(dist.log_prob(loc))
      self.assertAllFinite(log_pdf_at_loc)
  
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 3 for calling the GeneralizedParetoTest obj's underlying member method code with example usage: obj.testLogPDFBoundary() without return types