code: def testLogPDFScalarBatch(self):
      mu = self._rng.rand(2)
      chol, sigma = self._random_chol(2, 2)
      mvn = mvn_tril.MultivariateNormalTriL(
          mu, chol, validate_args=True
      )
      x = self._rng.rand(2)
  
      log_pdf = mvn.log_prob(x)
      pdf = mvn.prob(x)
  
      scipy_mvn = stats.multivariate_normal(mean=mu, cov=sigma)
  
      expected_log_pdf = scipy_mvn.logpdf(x)
      expected_pdf = scipy_mvn.pdf(x)
      self.assertEqual((), log_pdf.shape)
      self.assertEqual((), pdf.shape)
      self.assertAllClose(expected_log_pdf, self.evaluate(log_pdf))
      self.assertAllClose(expected_pdf, self.evaluate(pdf))
  
imports: import os
  from absl.testing import parameterized
  import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.bijectors import transform_diagonal
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import lognormal
  from tensorflow_probability.python.distributions import mvn_tril
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 4 for calling the MultivariateNormalTriLTest obj's underlying member method code with example usage: obj.testLogPDFScalarBatch() without return types