code: def testSurvivalAndLogSurvival(self):
      prob = 0.2
      dist = continuous_bernoulli.ContinuousBernoulli(probs=prob)
      self.assertAllClose(
          self.evaluate(
              dist.survival_function(
                  np.array([-2.0, 0.3, 1.1], dtype=np.float32)
              )
          ),
          1.0
          - np.array(
              [cdf(-2.0, 0.2), cdf(0.3, 0.2), cdf(1.1, 0.2)],
              dtype=np.float32,
          ),
      )
      self.assertAllClose(
          self.evaluate(
              dist.log_survival_function(
                  np.array([-2.0, 0.3, 1.1], dtype=np.float32)
              )
          ),
          np.array(
              [
                  np.log(1.0 - cdf(-2.0, 0.2)),
                  np.log(1.0 - cdf(0.3, 0.2)),
                  np.log(1.0 - cdf(1.1, 0.2)),
              ],
              dtype=np.float32,
          ),
      )
  
imports: import numpy
  from scipy import special
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import continuous_bernoulli
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 27 for calling the ContinuousBernoulliTest obj's underlying member method code with example usage: obj.testSurvivalAndLogSurvival() without return types