code: def testLogNormalStats(self):
      loc = np.float32([3.0, 1.5])
      scale = np.float32([0.4, 1.1])
      dist = lognormal.LogNormal(
          loc=loc, scale=scale, validate_args=True
      )
  
      self.assertAllClose(
          self.evaluate(dist.mean()), np.exp(loc + scale**2 / 2)
      )
      self.assertAllClose(
          self.evaluate(dist.variance()),
          (np.exp(scale**2) - 1) * np.exp(2 * loc + scale**2),
      )
      self.assertAllClose(
          self.evaluate(dist.stddev()),
          np.sqrt(self.evaluate(dist.variance())),
      )
      self.assertAllClose(
          self.evaluate(dist.mode()), np.exp(loc - scale**2)
      )
      self.assertAllClose(
          self.evaluate(dist.entropy()),
          np.log(scale * np.exp(loc + 0.5) * np.sqrt(2 * np.pi)),
      )
  
file_path: probability/tensorflow_probability/python/distributions/lognormal_test.py
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import lognormal
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 2 for calling the LogNormalTest obj's underlying member method code with example usage: obj.testLogNormalStats() without return types