code: def testPoissonShape(self):
      lam = tf.constant([3.0] * 5)
      poisson = self._make_poisson(rate=lam)
  
      self.assertEqual(
          self.evaluate(poisson.batch_shape_tensor()), (5,)
      )
      self.assertEqual(poisson.batch_shape, tf.TensorShape([5]))
      self.assertAllEqual(
          self.evaluate(poisson.event_shape_tensor()), []
      )
      self.assertEqual(poisson.event_shape, tf.TensorShape([]))
  
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 2 for calling the PoissonTest obj's underlying member method code with example usage: obj.testPoissonShape() without return types