code: def testMoyalMoyalKL(self):
      a_loc = np.arange(-2.0, 3.0, 1.0)
      a_scale = np.arange(0.5, 2.5, 0.5)
      b_loc = 2 * np.arange(-2.0, 3.0, 1.0)
      b_scale = np.arange(0.5, 2.5, 0.5)
  
      # This reshape is intended to expand the number of test cases.
      a_loc = a_loc.reshape((len(a_loc), 1, 1, 1))
      a_scale = a_scale.reshape((1, len(a_scale), 1, 1))
      b_loc = b_loc.reshape((1, 1, len(b_loc), 1))
      b_scale = b_scale.reshape((1, 1, 1, len(b_scale)))
  
      a = moyal.Moyal(loc=a_loc, scale=a_scale, validate_args=True)
      b = moyal.Moyal(loc=b_loc, scale=b_scale, validate_args=True)
  
      kl = kullback_leibler.kl_divergence(a, b)
  
      x = a.sample(int(3e5), seed=test_util.test_seed())
      kl_samples = a.log_prob(x) - b.log_prob(x)
      kl_, kl_samples_ = self.evaluate([kl, kl_samples])
  
      self.assertAllMeansClose(
          kl_samples_, kl_, axis=0, atol=1e-15, rtol=1e-1
      )
  
      zero_kl = kullback_leibler.kl_divergence(a, a)
      true_zero_kl_, zero_kl_ = self.evaluate(
          [tf.zeros_like(zero_kl), zero_kl]
      )
      self.assertAllClose(true_zero_kl_, zero_kl_)
  
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import moyal
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 15 for calling the _MoyalTest obj's underlying member method code with example usage: obj.testMoyalMoyalKL() without return types