code: def test_safety_check(self) -> None:
      experiment = get_experiment()
      gss = ImprovementGlobalStoppingStrategy(
          min_trials=2, window_size=3
      )
  
      stop, message = gss.should_stop_optimization(
          experiment=experiment
      )
      self.assertFalse(stop)
      self.assertEqual(
          message,
          "There are no completed trials yet.",
      )
  
imports: from typing import List, Tuple
  import numpy
  import pandas
  from ax.core.arm import Arm
  from ax.core.batch_trial import BatchTrial
  from ax.core.data import Data
  from ax.core.experiment import Experiment
  from ax.core.metric import Metric
  from ax.core.objective import MultiObjective, Objective
  from ax.core.optimization_config import MultiObjectiveOptimizationConfig, OptimizationConfig
  from ax.core.outcome_constraint import ObjectiveThreshold, OutcomeConstraint
  from ax.core.parameter import ParameterType, RangeParameter
  from ax.core.search_space import SearchSpace
  from ax.core.trial import Trial
  from ax.core.types import ComparisonOp
  from ax.global_stopping.strategies.improvement import constraint_satisfaction, ImprovementGlobalStoppingStrategy
  from ax.utils.common.testutils import TestCase
  from ax.utils.common.typeutils import checked_cast, not_none
  from ax.utils.testing.core_stubs import get_experiment, get_experiment_with_data
label_desc: Use image node_id 8 for calling the TestImprovementGlobalStoppingStrategy obj's underlying member method code with example usage: obj.test_safety_check() without return types