code: def testRunOneEpisodeWithLowMaxSteps(self):
      max_steps_per_episode = 2
      environment = MockEnvironment()
      runner = run_experiment.Runner(
          self._test_subdir,
          self._create_agent_fn,
          lambda: environment,
          max_steps_per_episode=max_steps_per_episode,
      )
      step_number, total_reward = runner._run_one_episode()
      self.assertEqual(
          self._agent.step.call_count, max_steps_per_episode - 1
      )
      self.assertEqual(self._agent.end_episode.call_count, 1)
      self.assertEqual(max_steps_per_episode, step_number)
      self.assertEqual(-1, total_reward)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import shutil
  from absl import flags
  from dopamine.agents.dqn import dqn_agent
  from dopamine.agents.implicit_quantile import implicit_quantile_agent
  from dopamine.agents.rainbow import rainbow_agent
  from dopamine.discrete_domains import checkpointer
  from dopamine.discrete_domains import logger
  from dopamine.discrete_domains import run_experiment
  from dopamine.metrics import collector_dispatcher
  from dopamine.metrics import statistics_instance
  import gin.tf
  import mock
  import tensorflow
label_desc: Use image node_id 7 for calling the RunnerTest obj's underlying member method code with example usage: obj.testRunOneEpisodeWithLowMaxSteps() without return types