code: def test_entry_point_compute_params():
      """
      Tests that EntryPoint correctly computes a final set of parameters to use when running a project
      """
      project = load_project()
      entry_point = project.get_entry_point("greeter")
      # Pass extra "excitement" param, use default value for `greeting` param
      with TempDir() as storage_dir:
          params, extra_params = entry_point.compute_parameters(
              {"name": "friend", "excitement": 10}, storage_dir
          )
          assert params == {"name": "friend", "greeting": "hi"}
          assert extra_params == {"excitement": "10"}
          # Don't pass extra "excitement" param, pass value for `greeting`
          params, extra_params = entry_point.compute_parameters(
              {"name": "friend", "greeting": "hello"}, storage_dir
          )
          assert params == {"name": "friend", "greeting": "hello"}
          assert extra_params == {}
          # Raise exception on missing required parameter
          with pytest.raises(
              ExecutionException,
              match="No value given for missing parameters: 'name'",
          ):
              entry_point.compute_parameters({}, storage_dir)
  
file_path: mlflow/tests/projects/test_entry_point.py
imports: import os
  from shlex import quote
  from unittest import mock
  import pytest
  from mlflow.exceptions import ExecutionException
  from mlflow.projects._project_spec import EntryPoint
  from mlflow.utils.file_utils import TempDir, path_to_local_file_uri
  from tests.projects.utils import TEST_PROJECT_DIR, load_project
label_desc: Use image node_id 1 for calling a global function with example usage: test_entry_point_compute_params() without return types