code: def test_multi_objective(
      make_runner: Callable[..., TargetFunctionRunner]
  ) -> None:
      """Test multiobjective function processed properly"""
      # We always expect a list of costs (although a dict is returned).
      # Internally, target function runner maps the dict to a list of costs in the right order.
      for target in [target_multi_objective1, target_multi_objective2]:
          runner = make_runner(target, use_multi_objective=True)
          config = (
              runner._scenario.configspace.get_default_configuration()
          )
  
          SEED = 2345
          status, cost, _, _ = runner.run(
              config=config, instance=None, seed=SEED, budget=None
          )
  
          assert isinstance(cost, list)
          assert cost == [SEED, SEED]
          assert status == StatusType.SUCCESS
  
imports: from __future__ import annotations
  from typing import Callable
  import time
  import pytest
  from ConfigSpace import Configuration, ConfigurationSpace
  from smac.runhistory import TrialInfo
  from smac.runner.abstract_runner import StatusType
  from smac.runner.target_function_runner import TargetFunctionRunner
  from smac.scenario import Scenario
label_desc: Use image node_id 12 for calling a global function with example usage: test_multi_objective(make_runner) without return types