code: def helper_param_shapes(self, sample_shape, expected):
      param_shapes = generalized_normal.GeneralizedNormal.param_shapes(
          sample_shape
      )
      mu_shape = param_shapes["loc"]
      sigma_shape = param_shapes["scale"]
      power_shape = param_shapes["power"]
      self.assertAllEqual(expected, self.evaluate(mu_shape))
      self.assertAllEqual(expected, self.evaluate(sigma_shape))
      self.assertAllEqual(expected, self.evaluate(power_shape))
      mu = tf.zeros(mu_shape)
      sigma = tf.ones(sigma_shape)
      power = tf.ones(power_shape)
      samples = generalized_normal.GeneralizedNormal(
          mu, sigma, power, validate_args=True
      ).sample(seed=test_util.test_seed())
      self.assertAllEqual(expected, self.evaluate(tf.shape(samples)))
  
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 1 for calling the _GeneralizedNormalTest obj's underlying member method code with example usage: obj.helper_param_shapes(sample_shape, expected) without return types