code: def test_budgets(scenario, runhistory, config1, config2):
      runhistory.multi_objective_algorithm = MeanAggregationStrategy(
          scenario
      )
  
      runhistory.add(
          config=config1,
          cost=[0, 50],
          time=5,
          status=StatusType.SUCCESS,
          instance=1,
          seed=1,
          budget=5,
      )
  
      runhistory.add(
          config=config1,
          cost=[40, 100],
          time=10,
          status=StatusType.SUCCESS,
          instance=1,
          seed=1,
          budget=15,
      )
  
      # SMAC does not overwrite by default
      runhistory.add(
          config=config1,
          cost=[502342352, 23425234],
          time=11,
          status=StatusType.SUCCESS,
          instance=1,
          seed=1,
          budget=15,
      )
  
      runhistory.add(
          config=config2,
          cost=[0, 150],
          time=15,
          status=StatusType.SUCCESS,
          instance=1,
          seed=1,
          budget=5,
      )
  
      assert runhistory._objective_bounds[0] == (0, 40)
      assert runhistory._objective_bounds[1] == (50, 150)
  
      # Average cost returns us the cost of the latest budget
      assert runhistory.get_cost(config1) == 0.75
      assert runhistory.average_cost(config1), [40.0, 100.0]
  
      assert runhistory.get_cost(config2) == 0.5
      assert runhistory.average_cost(config2) == [0, 150]
  
imports: import pickle
  import tempfile
  import pytest
  from smac.multi_objective.aggregation_strategy import MeanAggregationStrategy
  from smac.runner.abstract_runner import StatusType
  from smac.scenario import Scenario
label_desc: Use image node_id 17 for calling a global function with example usage: test_budgets(scenario, runhistory, config1, config2) without return types