code: def testWeibullGammaKL(self):
      a_concentration = np.array([3.0])
      a_scale = np.array([2.0])
      b_concentration = np.array([6.0])
      b_rate = np.array([0.25])
  
      a = weibull.Weibull(
          concentration=a_concentration,
          scale=a_scale,
          validate_args=True,
      )
      b = gamma.Gamma(
          concentration=b_concentration, rate=b_rate, validate_args=True
      )
  
      kl = kullback_leibler.kl_divergence(a, b)
  
      x = a.sample(int(1e5), seed=test_util.test_seed())
      kl_samples = a.log_prob(x) - b.log_prob(x)
      kl_samples_ = self.evaluate(kl_samples)
  
      self.assertAllMeansClose(
          kl_samples_, self.evaluate(kl), axis=0, atol=0.0, rtol=1e-2
      )
  
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import gamma
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import weibull
  from tensorflow_probability.python.distributions.internal import statistical_testing
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 15 for calling the _WeibullTest obj's underlying member method code with example usage: obj.testWeibullGammaKL() without return types