code: def testDtype(self):
      dist = make_categorical([], 5, dtype=tf.int32)
      self.assertEqual(dist.dtype, tf.int32)
      self.assertEqual(
          dist.dtype, dist.sample(5, seed=test_util.test_seed()).dtype
      )
      self.assertEqual(dist.dtype, dist.mode().dtype)
      dist = make_categorical([], 5, dtype=tf.int64)
      self.assertEqual(dist.dtype, tf.int64)
      self.assertEqual(
          dist.dtype, dist.sample(5, seed=test_util.test_seed()).dtype
      )
      self.assertEqual(dist.dtype, dist.mode().dtype)
      self.assertEqual(dist.logits.dtype, tf.float32)
      self.assertEqual(dist.logits.dtype, dist.entropy().dtype)
      self.assertEqual(
          dist.logits.dtype,
          dist.prob(np.array(0, dtype=np.int64)).dtype,
      )
      self.assertEqual(
          dist.logits.dtype,
          dist.log_prob(np.array(0, dtype=np.int64)).dtype,
      )
      for dtype in [tf.float16, tf.float32, tf.float64]:
          dist = make_categorical([], 5, dtype=dtype)
          self.assertEqual(dist.dtype, dtype)
          self.assertEqual(
              dist.dtype,
              dist.sample(5, seed=test_util.test_seed()).dtype,
          )
  
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 4 for calling the CategoricalTest obj's underlying member method code with example usage: obj.testDtype() without return types