code: def testVarianceAndStd(self):
      var = lambda p: p * (1.0 - p)
      p = [[0.2, 0.7], [0.5, 0.4]]
      dist = bernoulli.Bernoulli(probs=p, validate_args=True)
      self.assertAllClose(
          self.evaluate(dist.variance()),
          np.array(
              [[var(0.2), var(0.7)], [var(0.5), var(0.4)]],
              dtype=np.float32,
          ),
      )
      self.assertAllClose(
          self.evaluate(dist.stddev()),
          np.array(
              [
                  [np.sqrt(var(0.2)), np.sqrt(var(0.7))],
                  [np.sqrt(var(0.5)), np.sqrt(var(0.4))],
              ],
              dtype=np.float32,
          ),
      )
  
imports: import numpy
  from scipy import special
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import bernoulli
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.internal import samplers
  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 20 for calling the BernoulliTest obj's underlying member method code with example usage: obj.testVarianceAndStd() without return types