code: def test_random_digital_shift_with_dtype(self):
      dim = 6
      num_digits = 3
      seed = (2, 3)
  
      for dtype in [tf.int32, tf.int64]:
          actual = qmc.random_digital_shift(
              dim, num_digits, seed, dtype=dtype, validate_args=True
          )
  
          power = tf.constant(num_digits, dtype=dtype)
          minval = qmc.utils.exp2(power - 1)
          maxval = qmc.utils.exp2(power)
  
          with self.subTest("Shape"):
              self.assertEqual(actual.shape, (dim))
          with self.subTest("DType"):
              self.assertEqual(actual.dtype, dtype)
          with self.subTest("Max Value"):
              self.assertAllLess(actual, maxval)
          with self.subTest("Min Value"):
              self.assertAllGreaterEqual(actual, minval)
  
file_path: tf-quant-finance/tf_quant_finance/math/qmc/digital_net_test.py
imports: import tensorflow.compat.v2
  import tf_quant_finance
  from tensorflow.python.framework import test_util
label_desc: Use image node_id 2 for calling the DigitalNetTest obj's underlying member method code with example usage: obj.test_random_digital_shift_with_dtype() without return types