code: def testPoissonLogPmfGradientAtZeroPmf(self):
      # Check that the derivative wrt parameter at the zero-prob points is zero.
      batch_size = 6
      lam = tf.constant([3.0] * batch_size)
      x = tf.constant([-2.0, -1.0, -0.5, 0.2, 1.5, 10.5])
  
      def poisson_log_prob(lam):
          return self._make_poisson(
              rate=lam,
              force_probs_to_zero_outside_support=True,
              validate_args=False,
          ).log_prob(x)
  
      _, dlog_pmf_dlam = self.evaluate(
          gradient.value_and_gradient(poisson_log_prob, lam)
      )
  
      self.assertEqual(dlog_pmf_dlam.shape, (batch_size,))
      self.assertAllClose(dlog_pmf_dlam, np.zeros([batch_size]))
  
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import poisson
  from tensorflow_probability.python.distributions.internal import statistical_testing
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import implementation_selection
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 8 for calling the PoissonTest obj's underlying member method code with example usage: obj.testPoissonLogPmfGradientAtZeroPmf() and returns: self