code: def test_spec_from_gym_space_box_array_constant_bounds(self):
      for dtype in (np.float32, np.float64):
          box_space = gym.spaces.Box(
              np.array([-1.0, -1.0]), np.array([2.0, 2.0]), dtype=dtype
          )
          spec = gym_wrapper.spec_from_gym_space(box_space)
  
          self.assertEqual((2,), spec.shape)
          self.assertEqual(dtype, spec.dtype)
          self.assertAllEqual(-1.0, spec.minimum)
          self.assertAllEqual(2.0, spec.maximum)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  from absl.testing.absltest import mock
  import gymnasium
  import numpy
  from tf_agents.environments import gymnasium_wrapper
  from tf_agents.utils import test_utils
label_desc: Use image node_id 9 for calling the GymnasiumWrapperSpecTest obj's underlying member method code with example usage: obj.test_spec_from_gym_space_box_array_constant_bounds() without return types