code: def test_default_processed_rewards_discrete(self):
      # This differs in the above because it has a Tuple observation space.
      ep = gym_env_problem.GymEnvProblem(
          base_env_name="KellyCoinflip-v0",
          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.
      reward_range = ep.reward_range
      self.assertEqual(0, reward_range[0])
  
      # Google's version of Gym has maxWealth, vs max_wealth externally.
      max_wealth = getattr(
          ep._envs[0],
          "maxWealth",
          getattr(ep._envs[0], "max_wealth", None),
      )
      self.assertIsNotNone(max_wealth)
      self.assertEqual(max_wealth, reward_range[1])
  
      # Check that the processed rewards are discrete.
      self.assertTrue(ep.is_processed_rewards_discrete)
  
      # Assert on the number of rewards.
      self.assertEqual(
          ep.num_rewards, reward_range[1] - reward_range[0] + 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 5 for calling the GymEnvProblemTest obj's underlying member method code with example usage: obj.test_default_processed_rewards_discrete() without return types