code: def test_successive_halving_pruner_first_trial_is_not_pruned() -> (
      None
  ):
      pruner = optuna.pruners.SuccessiveHalvingPruner(
          min_resource=1, reduction_factor=2, min_early_stopping_rate=0
      )
      study = optuna.study.create_study(pruner=pruner)
      trial = study.ask()
  
      for i in range(10):
          trial.report(1, step=i)
  
          # The first trial is not pruned.
          assert not trial.should_prune()
  
      # The trial completed until rung 3.
      trial_system_attrs = trial.storage.get_trial_system_attrs(
          trial._trial_id
      )
      assert "completed_rung_0" in trial_system_attrs
      assert "completed_rung_1" in trial_system_attrs
      assert "completed_rung_2" in trial_system_attrs
      assert "completed_rung_3" in trial_system_attrs
      assert "completed_rung_4" not in trial_system_attrs
  
file_path: optuna/tests/pruners_tests/test_successive_halving.py
imports: from typing import Tuple
  import pytest
  import optuna
label_desc: Use image node_id 3 for calling a global function with example usage: test_successive_halving_pruner_first_trial_is_not_pruned() without return types