code: def test_checkpoint_freq_buffered(
      ray_start_4_cpus_2_gpus_extra, resource_manager_cls, tmp_path
  ):
      """Test that trial checkpoints are a lower bound for buffered training iterations.
  
      Legacy test: test_trial_runner_3.py::TrialRunnerTest::testCheckpointFreqBuffered
      """
      with mock.patch.dict(
          os.environ,
          {
              "TUNE_RESULT_BUFFER_LENGTH": "7",
              "TUNE_RESULT_BUFFER_MIN_TIME_S": "1",
          },
      ):
  
          def num_checkpoints(trial):
              return sum(
                  item.startswith("checkpoint_")
                  for item in os.listdir(trial.local_path)
              )
  
          trial = Trial(
              "__fake",
              checkpoint_config=CheckpointConfig(
                  checkpoint_frequency=3
              ),
              storage=STORAGE,
          )
          runner = TuneController(
              resource_manager_factory=lambda: resource_manager_cls(),
              storage=STORAGE,
              checkpoint_period=0,
          )
          runner.add_trial(trial)
  
          while not trial.is_saving:
              runner.step()
          runner.step()
          assert trial.last_result[TRAINING_ITERATION] == 3
          assert num_checkpoints(trial) == 1
  
          while not trial.is_saving:
              runner.step()
          runner.step()
          assert trial.last_result[TRAINING_ITERATION] == 6
          assert num_checkpoints(trial) == 2
  
          while not trial.is_saving:
              runner.step()
          runner.step()
          assert trial.last_result[TRAINING_ITERATION] == 9
          assert num_checkpoints(trial) == 3
  
imports: import json
  import logging
  import os
  import tempfile
  from unittest import mock
  import pytest
  import sys
  import time
  from functools import partial
  import ray
  from freezegun import freeze_time
  from ray.train import CheckpointConfig
  from ray.air.execution import FixedResourceManager, PlacementGroupResourceManager
  from ray.air.constants import TRAINING_ITERATION
  from ray.train import Checkpoint
  from ray.train._internal.session import _TrainingResult
  from ray.train._internal.storage import StorageContext
  from ray.tune import PlacementGroupFactory
  from ray.tune.execution.tune_controller import TuneController
  from ray.tune.experiment import Trial
  from ray.tune.result import DONE
  from ray.tune.schedulers import FIFOScheduler
  from ray.tune.search import BasicVariantGenerator
  from ray.train.tests.util import mock_storage_context
  from ray.tune.tests.tune_test_util import TrialResultObserver
label_desc: Use image node_id 7 for calling a global function with example usage: test_checkpoint_freq_buffered(ray_start_4_cpus_2_gpus_extra, resource_manager_cls, tmp_path) and returns: sum