code: def testLogExperiment(self, mock_logger_constructor):
      log_every_n = 2
      logging_file_prefix = "prefix"
      statistics = "statistics"
      experiment_logger = MockLogger(test_cls=self)
      mock_logger_constructor.return_value = experiment_logger
      runner = run_experiment.Runner(
          self._test_subdir,
          self._create_agent_fn,
          mock.Mock,
          logging_file_prefix=logging_file_prefix,
          log_every_n=log_every_n,
      )
      num_iterations = 10
      for i in range(num_iterations):
          runner._log_experiment(i, statistics)
      self.assertEqual(num_iterations, experiment_logger._calls_to_set)
      self.assertEqual(
          (num_iterations / log_every_n),
          experiment_logger._calls_to_log,
      )
  
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 10 for calling the RunnerTest obj's underlying member method code with example usage: obj.testLogExperiment(mock_logger_constructor) without return types