code: def testSkellamLogPmfGradient(self):
      batch_size = 6
      rate1 = tf.constant([3.0] * batch_size, dtype=self.dtype)
      rate2 = tf.constant([2.7] * batch_size, dtype=self.dtype)
      x = np.array([-1.0, 2.0, 3.0, 4.0, 5.0, 6.0], dtype=self.dtype)
  
      err = self.compute_max_gradient_error(
          lambda lam: self._make_skellam(  # pylint:disable=g-long-lambda
              rate1=lam, rate2=rate2
          ).log_prob(
              x
          ),
          [rate1],
      )
      self.assertLess(err, 7e-4)
  
      err = self.compute_max_gradient_error(
          lambda lam: self._make_skellam(  # pylint:disable=g-long-lambda
              rate1=rate1, rate2=lam
          ).log_prob(
              x
          ),
          [rate2],
      )
      self.assertLess(err, 7e-4)
  
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import skellam
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 6 for calling the _SkellamTest obj's underlying member method code with example usage: obj.testSkellamLogPmfGradient() without return types