code: def test_upper_confidence_bound(self):
      shape = [7, 2, 3, 20]
      loc = 3.0 * np.ones(shape, dtype=self.dtype)
      stddev = 2.0
      exploration = 2.0
      actual_ucb = upper_confidence_bound.normal_upper_confidence_bound(
          mean=loc, stddev=stddev, exploration=exploration
      )
  
      expected_ucb = loc + exploration * stddev
      self.assertAllEqual(actual_ucb.shape, shape)
      self.assertAllClose(actual_ucb, expected_ucb)
      self.assertDTypeEqual(actual_ucb, self.dtype)
  
file_path: probability/tensorflow_probability/python/experimental/bayesopt/acquisition/upper_confidence_bound_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 upper_confidence_bound
  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 _UpperConfidenceBoundTest obj's underlying member method code with example usage: obj.test_upper_confidence_bound() without return types