code: def test_reward_range(self):
      # Passing reward_range=None means take the reward range of the underlying
      # environment as the reward range.
      ep = gym_env_problem.GymEnvProblem(
          base_env_name="FrozenLake-v1", batch_size=5, reward_range=None
      )
      ep.assert_common_preconditions()
  
      # Assert reward range is finite here.
      self.assertTrue(ep.is_reward_range_finite)
  
      # Assert that it is as expected of the underlying environment, since reward_
      self.assertEqual(0, ep.reward_range[0])
      self.assertEqual(1, ep.reward_range[1])
  
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 4 for calling the GymEnvProblemTest obj's underlying member method code with example usage: obj.test_reward_range() without return types