code: def test_setup(self):
      ep = gym_env_problem.GymEnvProblem(
          base_env_name="CartPole-v0", batch_size=5
      )
      # Checks that environments were created and they are `batch_size` in number.
      ep.assert_common_preconditions()
  
      # Expectations on the observation space.
      observation_space = ep.observation_space
      self.assertIsInstance(observation_space, Box)
      self.assertEqual(observation_space.shape, (4,))
      self.assertEqual(observation_space.dtype, np.float32)
  
      # Expectations on the action space.
      action_space = ep.action_space
      self.assertTrue(isinstance(action_space, Discrete))
      self.assertEqual(action_space.shape, ())
      self.assertEqual(action_space.dtype, np.int64)
      self.assertEqual(ep.num_actions, 2)
  
      # Reward range is infinite here.
      self.assertFalse(ep.is_reward_range_finite)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import gym
  from gym.spaces import Box
  from gym.spaces import Discrete
  import numpy
  from tensor2tensor.data_generators import generator_utils
  from tensor2tensor.data_generators import problem
  from tensor2tensor.envs import env_problem
  from tensor2tensor.envs import env_problem_utils
  from tensor2tensor.envs import gym_env_problem
  from tensor2tensor.layers import modalities
  import tensorflow.compat.v1
  from tensorflow.compat.v1 import estimator
label_desc: Use image node_id 3 for calling the GymEnvProblemTest obj's underlying member method code with example usage: obj.test_setup() without return types