code: def test_probability_of_improvement(self):
      shape = [6, 2, 15]
      loc = 2.0 * np.ones(shape, dtype=self.dtype)
      stddev = 3.0
      observations = np.array([2.0, 3.0, 6.0], self.dtype)
      best_observed = tf.reduce_max(observations)
      model = normal.Normal(loc, stddev, validate_args=True)
      actual_poi = (
          probability_of_improvement.normal_probability_of_improvement(
              best_observed, mean=loc, stddev=stddev
          )
      )
      expected_poi = model.survival_function(best_observed)
      self.assertAllEqual(actual_poi.shape, shape)
      self.assertAllClose(actual_poi, expected_poi)
      self.assertDTypeEqual(actual_poi, self.dtype)
  
file_path: probability/tensorflow_probability/python/experimental/bayesopt/acquisition/probability_of_improvement_test.py
imports: import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import gaussian_process_regression_model
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.experimental.bayesopt.acquisition import probability_of_improvement
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
  from tensorflow_probability.python.math.psd_kernels import exponentiated_quadratic
label_desc: Use image node_id 1 for calling the _ProbabilityOfImprovementTest obj's underlying member method code with example usage: obj.test_probability_of_improvement() without return types