code: def testPdfShapes(self):
      probs = lambda prob: tf1.placeholder_with_default(
          prob, shape=None
      )
  
      def dist(p):
          return continuous_bernoulli.ContinuousBernoulli(
              probs=probs(p), validate_args=True
          )
  
      self.assertEqual(
          2,
          len(self.evaluate(dist([[0.5], [0.5]]).log_prob(0.9)).shape),
      )
  
      dist = continuous_bernoulli.ContinuousBernoulli(
          probs=0.5, validate_args=True
      )
      self.assertEqual(
          2, len(self.evaluate(dist.log_prob([[0.9], [0.9]])).shape)
      )
  
      dist = continuous_bernoulli.ContinuousBernoulli(
          probs=0.5, validate_args=True
      )
      self.assertAllEqual([], dist.log_prob(0.9).shape)
      self.assertAllEqual([1], dist.log_prob([0.9]).shape)
      self.assertAllEqual([2, 1], dist.log_prob([[0.9], [0.9]]).shape)
  
      dist = continuous_bernoulli.ContinuousBernoulli(
          probs=[[0.5], [0.5]], validate_args=True
      )
      self.assertAllEqual([2, 1], dist.log_prob(0.9).shape)
  
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 14 for calling the ContinuousBernoulliTest obj's underlying member method code with example usage: obj.testPdfShapes() and returns: continuous_bernoulli