code: def testNormalCDF(self):
      batch_size = 50
      mu = self._rng.randn(batch_size)
      sigma = self._rng.rand(batch_size) + 1.0
      x = np.linspace(-8.0, 8.0, batch_size).astype(np.float64)
  
      dist = normal.Normal(loc=mu, scale=sigma, validate_args=True)
      cdf = dist.cdf(x)
      self.assertAllEqual(
          self.evaluate(dist.batch_shape_tensor()), cdf.shape
      )
      self.assertAllEqual(
          self.evaluate(dist.batch_shape_tensor()),
          self.evaluate(cdf).shape,
      )
      self.assertAllEqual(dist.batch_shape, cdf.shape)
      self.assertAllEqual(dist.batch_shape, self.evaluate(cdf).shape)
      expected_cdf = sp_stats.norm(mu, sigma).cdf(x)
      self.assertAllClose(expected_cdf, self.evaluate(cdf), atol=0)
  
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 9 for calling the NormalTest obj's underlying member method code with example usage: obj.testNormalCDF() without return types