code: def testVariableScale(self):
      x = tf.Variable(1.0, dtype=self.dtype)
      d = generalized_normal.GeneralizedNormal(
          loc=self.make_input(0.0),
          scale=x,
          power=self.make_input(3.0),
          validate_args=True,
      )
      self.evaluate([v.initializer for v in d.variables])
      self.assertIs(x, d.scale)
      self.assertEqual(0.0, self.evaluate(d.mean()))
      with self.assertRaisesOpError(
          "Argument `scale` must be positive."
      ):
          with tf.control_dependencies([x.assign(-1.0)]):
              self.evaluate(d.mean())
  
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 22 for calling the _GeneralizedNormalTest obj's underlying member method code with example usage: obj.testVariableScale() without return types