code: def _testParamShapes(self, desired_shape):
      tn_param_shapes = truncated_normal.TruncatedNormal.param_shapes(
          desired_shape
      )
      # Check the shapes by comparison with the untruncated Normal.
      n_param_shapes = normal.Normal.param_shapes(desired_shape)
      self.assertAllEqual(
          self.evaluate(tn_param_shapes["loc"]),
          self.evaluate(n_param_shapes["loc"]),
      )
      self.assertAllEqual(
          self.evaluate(tn_param_shapes["scale"]),
          self.evaluate(n_param_shapes["scale"]),
      )
      self.assertAllEqual(
          self.evaluate(tn_param_shapes["low"]),
          self.evaluate(n_param_shapes["loc"]),
      )
      self.assertAllEqual(
          self.evaluate(tn_param_shapes["high"]),
          self.evaluate(n_param_shapes["loc"]),
      )
  
      loc = tf.zeros(tn_param_shapes["loc"])
      scale = tf.ones(tn_param_shapes["scale"])
      high = tf.ones(tn_param_shapes["high"])
      low = tf.zeros(tn_param_shapes["low"])
      sample_shape = self.evaluate(
          tf.shape(
              truncated_normal.TruncatedNormal(
                  loc=loc,
                  scale=scale,
                  low=low,
                  high=high,
                  validate_args=True,
              ).sample(seed=test_util.test_seed())
          )
      )
      self.assertAllEqual(desired_shape, sample_shape)
  
imports: import itertools
  import unittest
  from absl.testing import parameterized
  import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.distributions import truncated_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 TruncatedNormalStandaloneTestCase obj's underlying member method code with example usage: obj._testParamShapes(desired_shape) without return types