code: def testNormalLogPDF(self):
      batch_size = 6
      mu = tf.constant([3.0] * batch_size)
      sigma = tf.constant([math.sqrt(10.0)] * batch_size)
      x = np.array([-2.5, 2.5, 4.0, 0.0, -1.0, 2.0], dtype=np.float32)
      dist = normal.Normal(loc=mu, scale=sigma, validate_args=True)
  
      log_pdf = dist.log_prob(x)
      self.assertAllEqual(
          self.evaluate(dist.batch_shape_tensor()), log_pdf.shape
      )
      self.assertAllEqual(
          self.evaluate(dist.batch_shape_tensor()),
          self.evaluate(log_pdf).shape,
      )
      self.assertAllEqual(dist.batch_shape, log_pdf.shape)
      self.assertAllEqual(
          dist.batch_shape, self.evaluate(log_pdf).shape
      )
  
      pdf = dist.prob(x)
      self.assertAllEqual(
          self.evaluate(dist.batch_shape_tensor()), pdf.shape
      )
      self.assertAllEqual(
          self.evaluate(dist.batch_shape_tensor()),
          self.evaluate(pdf).shape,
      )
      self.assertAllEqual(dist.batch_shape, pdf.shape)
      self.assertAllEqual(dist.batch_shape, self.evaluate(pdf).shape)
  
      expected_log_pdf = sp_stats.norm(
          self.evaluate(mu), self.evaluate(sigma)
      ).logpdf(x)
      self.assertAllClose(expected_log_pdf, self.evaluate(log_pdf))
      self.assertAllClose(np.exp(expected_log_pdf), self.evaluate(pdf))
  
imports: import math
  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 normal
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 7 for calling the NormalTest obj's underlying member method code with example usage: obj.testNormalLogPDF() without return types