code: def testGeneralizedNormalEntropy(self):
      loc_v = np.array([1.0, 1.0, 1.0])
      scale_v = np.array([[1.0, 2.0, 3.0]]).T
      power_v = np.array([1.0])
      gnormal = generalized_normal.GeneralizedNormal(
          loc=self.make_input(loc_v),
          scale=self.make_input(scale_v),
          power=self.make_input(power_v),
          validate_args=True,
      )
  
      # scipy.sp_stats.norm cannot deal with these shapes.
      scale_broadcast = loc_v * scale_v
      expected_entropy = 1.0 / power_v - np.log(
          power_v / (2.0 * scale_broadcast * sp_gamma(1.0 / power_v))
      )
      entropy = gnormal.entropy()
      np.testing.assert_allclose(
          expected_entropy, self.evaluate(entropy)
      )
      self.assertAllEqual(
          self.evaluate(gnormal.batch_shape_tensor()), entropy.shape
      )
      self.assertAllEqual(
          self.evaluate(gnormal.batch_shape_tensor()),
          self.evaluate(entropy).shape,
      )
      self.assertAllEqual(gnormal.batch_shape, entropy.shape)
      self.assertAllEqual(
          gnormal.batch_shape, self.evaluate(entropy).shape
      )
  
imports: import math
  import numpy
  from scipy import stats
  from scipy.special import gamma
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import generalized_normal
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 13 for calling the _GeneralizedNormalTest obj's underlying member method code with example usage: obj.testGeneralizedNormalEntropy() without return types