code: def testNormalConjugateKnownSigmaNDPosteriorND(self):
      batch_size = 6
      mu0 = tf.constant([[3.0, -3.0]] * batch_size)
      sigma0 = tf.constant(
          [[math.sqrt(10.0), math.sqrt(15.0)]] * batch_size
      )
      sigma = tf.constant(
          [[math.sqrt(2.0), math.sqrt(4.0)]] * batch_size
      )
      x = tf.constant(
          [
              [-2.5, 2.5, 4.0, 0.0, -1.0, 2.0],
              [2.5, -2.5, -4.0, 0.0, 1.0, -2.0],
          ],
          dtype=tf.float32,
      )
      s = tf.reduce_sum(x, axis=[1])
      x = tf.transpose(a=x)  # Reshape to shape (6, 2)
      n = tf.constant([6] * 2)
      prior = normal.Normal(loc=mu0, scale=sigma0)
      posterior = ncp.normal_conjugates_known_scale_posterior(
          prior=prior, scale=sigma, s=s, n=n
      )
  
      # Smoke test
      self.assertIsInstance(posterior, normal.Normal)
  
      # Calculate log_pdf under the 2 models
      posterior_log_pdf = posterior.log_prob(x)
      self.assertEqual(posterior_log_pdf.shape, (6, 2))
      self.assertEqual(self.evaluate(posterior_log_pdf).shape, (6, 2))
  
file_path: probability/tensorflow_probability/python/distributions/normal_conjugate_posteriors_test.py
imports: import math
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import fill_scale_tril
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import normal_conjugate_posteriors
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 3 for calling the NormalTest obj's underlying member method code with example usage: obj.testNormalConjugateKnownSigmaNDPosteriorND() without return types