code: def test_params():
      defaults = {
          "alpha": "float",
          "l1_ratio": {"type": "float", "default": 0.1},
          "l2_ratio": {"type": "float", "default": 0.0003},
          "random_str": {"type": "string", "default": "hello"},
      }
      entry_point = EntryPoint(
          "entry_point_name", defaults, "command_name script.py"
      )
  
      user1 = {}
      with pytest.raises(
          ExecutionException,
          match="No value given for missing parameters",
      ):
          entry_point._validate_parameters(user1)
  
      user_2 = {"beta": 0.004}
      with pytest.raises(
          ExecutionException,
          match="No value given for missing parameters",
      ):
          entry_point._validate_parameters(user_2)
  
      user_3 = {"alpha": 0.004, "gamma": 0.89}
      expected_final_3 = {
          "alpha": "0.004",
          "l1_ratio": "0.1",
          "l2_ratio": "0.0003",
          "random_str": "hello",
      }
      expected_extra_3 = {"gamma": "0.89"}
      final_3, extra_3 = entry_point.compute_parameters(user_3, None)
      assert expected_extra_3 == extra_3
      assert expected_final_3 == final_3
  
      user_4 = {
          "alpha": 0.004,
          "l1_ratio": 0.0008,
          "random_str_2": "hello",
      }
      expected_final_4 = {
          "alpha": "0.004",
          "l1_ratio": "0.0008",
          "l2_ratio": "0.0003",
          "random_str": "hello",
      }
      expected_extra_4 = {"random_str_2": "hello"}
      final_4, extra_4 = entry_point.compute_parameters(user_4, None)
      assert expected_extra_4 == extra_4
      assert expected_final_4 == final_4
  
      user_5 = {"alpha": -0.99, "random_str": "hi"}
      expected_final_5 = {
          "alpha": "-0.99",
          "l1_ratio": "0.1",
          "l2_ratio": "0.0003",
          "random_str": "hi",
      }
      expected_extra_5 = {}
      final_5, extra_5 = entry_point.compute_parameters(user_5, None)
      assert expected_final_5 == final_5
      assert expected_extra_5 == extra_5
  
      user_6 = {"alpha": 0.77, "ALPHA": 0.89}
      expected_final_6 = {
          "alpha": "0.77",
          "l1_ratio": "0.1",
          "l2_ratio": "0.0003",
          "random_str": "hello",
      }
      expected_extra_6 = {"ALPHA": "0.89"}
      final_6, extra_6 = entry_point.compute_parameters(user_6, None)
      assert expected_extra_6 == extra_6
      assert expected_final_6 == final_6
  
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 5 for calling a global function with example usage: test_params() without return types