code: def test_frame_numbers_are_continuous(self):
      env, _, _, _ = self.init_batch_and_play(
          TEST_ENV_NAME, steps_per_epoch=20, generate_data=True
      )
  
      frame_numbers = [
          tf.train.Example.FromString(record)
          .features.feature["frame_number"]
          .int64_list.value[0]
          for (_, paths) in env.splits_and_paths(self.out_dir)
          for path in paths
          for record in tf.python_io.tf_record_iterator(path)
      ]
      last_frame_number = -1
      for frame_number in frame_numbers:
          # Every consecutive frame number should be either zero (first frame in
          # a new rollout) or one bigger than the last one (next frame in the same
          # rollout).
          if frame_number > 0:
              self.assertEqual(frame_number, last_frame_number + 1)
          last_frame_number = frame_number
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import shutil
  import gym
  from gym.spaces import Box
  from gym.spaces import Discrete
  import numpy
  from tensor2tensor.data_generators import gym_env
  from tensor2tensor.data_generators import problem
  from tensor2tensor.rl.gym_utils import make_gym_env
  import tensorflow.compat.v1
label_desc: Use image node_id 9 for calling the GymEnvTest obj's underlying member method code with example usage: obj.test_frame_numbers_are_continuous() without return types