code: def testSampleWithSampleShape(self):
      histograms = np.array([[[0.2, 0.8], [0.4, 0.6]]])
      dist = categorical.Categorical(
          tf.math.log(histograms) - 50.0, validate_args=True
      )
      samples = dist.sample((100, 100), seed=test_util.test_seed())
      prob = dist.prob(samples)
      prob_val = self.evaluate(prob)
      self.assertAllClose(
          [0.2**2 + 0.8**2],
          [prob_val[:, :, :, 0].mean()],
          atol=1e-2,
      )
      self.assertAllClose(
          [0.4**2 + 0.6**2],
          [prob_val[:, :, :, 1].mean()],
          atol=1e-2,
      )
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import identity
  from tensorflow_probability.python.distributions import categorical
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import tensorshape_util
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
  from tensorflow_probability.python.util import deferred_tensor
label_desc: Use image node_id 24 for calling the CategoricalTest obj's underlying member method code with example usage: obj.testSampleWithSampleShape() without return types