code: def test_rollout_evaluator():
      env = SequentialVectorEnv(
          [
              lambda: TimeLimitWrapper.wrap(
                  build_dummy_maze_env(), max_episode_steps=2
              )
          ]
          * 2
      )
      policy = flatten_concat_probabilistic_policy_for_env(
          build_dummy_maze_env()
      )
      model_selection = _MockModelSelection()
  
      evaluator = RolloutEvaluator(
          eval_env=env, n_episodes=3, model_selection=model_selection
      )
      for i in range(2):
          evaluator.evaluate(policy)
          increment_log_step()
  
      assert model_selection.update_count == 2
      assert (
          evaluator.eval_env.get_stats_value(
              BaseEnvEvents.reward,
              LogStatsLevel.EPOCH,
              name="total_episode_count",
          )
          >= 2 * 3
      )
  
file_path: maze/maze/test/train/common/evaluators/test_rollout_evaluator.py
imports: from maze.core.env.base_env_events import BaseEnvEvents
  from maze.core.log_stats.log_stats import increment_log_step, LogStatsLevel
  from maze.core.wrappers.time_limit_wrapper import TimeLimitWrapper
  from maze.test.shared_test_utils.helper_functions import flatten_concat_probabilistic_policy_for_env, build_dummy_maze_env
  from maze.train.parallelization.vector_env.sequential_vector_env import SequentialVectorEnv
  from maze.train.trainers.common.evaluators.rollout_evaluator import RolloutEvaluator
  from maze.train.trainers.common.model_selection.model_selection_base import ModelSelectionBase
label_desc: Use image node_id 1 for calling a global function with example usage: test_rollout_evaluator() without return types