code: def testNotReparameterized(self):
      p = constant_op.constant([0.3, 0.3, 0.4])
      with backprop.GradientTape() as tape:
          tape.watch(p)
          dist = categorical.Categorical(p)
          samples = dist.sample(100)
      grad_p = tape.gradient(samples, p)
      self.assertIsNone(grad_p)
  
imports: from absl.testing import parameterized
  import numpy
  from tensorflow.python.eager import backprop
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import tensor_util
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gradients_impl
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.ops import random_ops
  from tensorflow.python.ops.distributions import categorical
  from tensorflow.python.ops.distributions import kullback_leibler
  from tensorflow.python.ops.distributions import normal
  from tensorflow.python.platform import test
label_desc: Use image node_id 20 for calling the CategoricalTest obj's underlying member method code with example usage: obj.testNotReparameterized() without return types