code: def test_metric_name_multiobjective(
      tmpdir: py.path.local,
      names: Union[str, List[str]],
      expected: List[str],
  ) -> None:
      tracking_uri = f"file:{tmpdir}"
  
      mlflc = MLflowCallback(
          tracking_uri=tracking_uri, metric_name=names
      )
      study = optuna.create_study(
          study_name="my_study", directions=["minimize", "maximize"]
      )
      study.optimize(
          _multiobjective_func, n_trials=3, callbacks=[mlflc]
      )
  
      mlfl_client = MlflowClient(tracking_uri)
      experiments = mlfl_client.search_experiments()
  
      experiment = experiments[0]
      experiment_id = experiment.experiment_id
  
      first_run = mlfl_client.search_runs(experiment_id)[0]
      first_run_dict = first_run.to_dictionary()
  
      assert all(
          [e in first_run_dict["data"]["metrics"] for e in expected]
      )
  
imports: from typing import Callable
  from typing import List
  from typing import Optional
  from typing import Tuple
  from typing import Union
  import numpy
  import py
  import pytest
  import optuna
  from optuna._imports import try_import
  from optuna.integration.mlflow import MLflowCallback
label_desc: Use image node_id 8 for calling a global function with example usage: test_metric_name_multiobjective(tmpdir, names, expected) without return types