code: def test_choose_param_value_objective(objective_alias):
      # If callable is found in objective
      params = {objective_alias: dummy_obj}
      params = lgb.basic._choose_param_value(
          main_param_name="objective", params=params, default_value=None
      )
      assert params["objective"] == dummy_obj
  
      # Value in params should be preferred to the default_value passed from keyword arguments
      params = {objective_alias: dummy_obj}
      params = lgb.basic._choose_param_value(
          main_param_name="objective",
          params=params,
          default_value=mse_obj,
      )
      assert params["objective"] == dummy_obj
  
      # None of objective or its aliases in params, but default_value is callable.
      params = {}
      params = lgb.basic._choose_param_value(
          main_param_name="objective",
          params=params,
          default_value=mse_obj,
      )
      assert params["objective"] == mse_obj
  
imports: import filecmp
  import numbers
  import re
  from copy import deepcopy
  from os import getenv
  from pathlib import Path
  import numpy
  import pytest
  from scipy import sparse
  from sklearn.datasets import dump_svmlight_file, load_svmlight_file
  from sklearn.model_selection import train_test_split
  import lightgbm
  from lightgbm.compat import PANDAS_INSTALLED, pd_DataFrame, pd_Series
  from .utils import dummy_obj, load_breast_cancer, mse_obj, np_assert_array_equal
label_desc: Use image node_id 21 for calling a global function with example usage: test_choose_param_value_objective(objective_alias) without return types