code: def testSkellamLogPmfDiscreteMatchesScipy(self):
      batch_size = 12
      rate1 = np.linspace(1, 12, 12).astype(self.dtype)
      rate2 = np.array([[1.2], [2.3]]).astype(self.dtype)
      x = np.array(
          [
              -3.0,
              -1.0,
              0.0,
              2.0,
              4.0,
              3.0,
              7.0,
              4.0,
              8.0,
              9.0,
              6.0,
              7.0,
          ],
          dtype=self.dtype,
      )
      dist = self._make_skellam(
          rate1=rate1,
          rate2=rate2,
          force_probs_to_zero_outside_support=True,
          validate_args=False,
      )
      log_pmf = dist.log_prob(x)
      self.assertEqual(log_pmf.shape, (2, batch_size))
      self.assertAllClose(
          self.evaluate(log_pmf), stats.skellam.logpmf(x, rate1, rate2)
      )
  
      pmf = dist.prob(x)
      self.assertEqual(
          pmf.shape,
          (
              2,
              batch_size,
          ),
      )
      self.assertAllClose(
          self.evaluate(pmf), stats.skellam.pmf(x, rate1, rate2)
      )
  
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 5 for calling the _SkellamTest obj's underlying member method code with example usage: obj.testSkellamLogPmfDiscreteMatchesScipy() without return types