code: def testSampleWithArrayInBounds(self, dtype):
      if dtype == tf.string:
          self.skipTest("Not compatible with string type.")
      spec = tensor_spec.BoundedTensorSpec((2, 3), dtype, (0, 0, 0), 3)
      sample = tensor_spec.sample_spec_nest(spec)
      self.assertEqual((2, 3), sample.shape)
      sample_ = self.evaluate(sample)
      self.assertEqual((2, 3), sample_.shape)
      self.assertTrue(np.all(sample_ <= 3))
      self.assertTrue(np.all(0 <= sample_))
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tf_agents.specs import array_spec
  from tf_agents.specs import tensor_spec
  from tf_agents.trajectories import time_step
label_desc: Use image node_id 3 for calling the BoundedTensorSpecSampleTest obj's underlying member method code with example usage: obj.testSampleWithArrayInBounds(dtype) without return types