code: def testRunExperiment(
      self,
      mock_logger_constructor,
      mock_checkpointer_constructor,
      mock_get_latest,
  ):
      log_every_n = 1
      environment = MockEnvironment()
      experiment_logger = MockLogger(run_asserts=False)
      mock_logger_constructor.return_value = experiment_logger
      experiment_checkpointer = mock.Mock()
      start_iteration = 1729
      mock_get_latest.return_value = start_iteration
  
      def load_checkpoint(_):
          return {
              "logs": "log_data",
              "current_iteration": start_iteration - 1,
          }
  
      experiment_checkpointer.load_checkpoint.side_effect = (
          load_checkpoint
      )
      mock_checkpointer_constructor.return_value = (
          experiment_checkpointer
      )
  
      def bundle_and_checkpoint(x, y):
          del x, y  # Unused.
          return {"test": 1}
  
      self._agent.bundle_and_checkpoint.side_effect = (
          bundle_and_checkpoint
      )
      num_iterations = 10
      self._agent.unbundle.return_value = True
      end_iteration = start_iteration + num_iterations
      runner = run_experiment.Runner(
          self._test_subdir,
          self._create_agent_fn,
          lambda: environment,
          log_every_n=log_every_n,
          num_iterations=end_iteration,
          training_steps=1,
          evaluation_steps=1,
      )
      self.assertEqual(start_iteration, runner._start_iteration)
      runner.run_experiment()
      self.assertEqual(
          num_iterations,
          experiment_checkpointer.save_checkpoint.call_count,
      )
      self.assertEqual(num_iterations, experiment_logger._calls_to_set)
      self.assertEqual(num_iterations, experiment_logger._calls_to_log)
      glob_string = "{}/events.out.tfevents.*".format(self._test_subdir)
      self.assertNotEmpty(tf.io.gfile.glob(glob_string))
  
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 14 for calling the RunnerTest obj's underlying member method code with example usage: obj.testRunExperiment(mock_logger_constructor, mock_checkpointer_constructor, mock_get_latest) and returns: dict, dict