code: def kernel_arg_strategy(draw):
      kernel = draw(st.sampled_from(test_kernels))
      kernel_func = (
          PAIRWISE_KERNEL_FUNCTIONS[kernel]
          if isinstance(kernel, str)
          else kernel
      )
      # Inspect the function and generate some arguments
      py_func = (
          kernel_func.py_func
          if hasattr(kernel_func, "py_func")
          else kernel_func
      )
      all_func_kwargs = list(
          inspect.signature(py_func).parameters.values()
      )[2:]
      param = {}
      for arg in all_func_kwargs:
          # 50% chance we generate this parameter or leave it as default
          if draw(st.booleans()):
              continue
          if isinstance(arg.default, float) or arg.default is None:
              param[arg.name] = draw(st.floats(0.0, 5.0))
          if isinstance(arg.default, int):
              param[arg.name] = draw(st.integers(1, 5))
  
      return (kernel, param)
  
imports: from cuml.testing.utils import as_type
  from hypothesis.extra.numpy import arrays
  from hypothesis import given, settings, assume, strategies
  from sklearn.kernel_ridge import KernelRidge
  import inspect
  import math
  import pytest
  from sklearn.metrics.pairwise import pairwise_kernels
  from cuml.metrics import pairwise_kernels, PAIRWISE_KERNEL_FUNCTIONS
  from cuml import KernelRidge
  from cuml.internals.safe_imports import cpu_only_import
  from cuml.internals.safe_imports import gpu_only_import_from
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 4 for calling a global function with example usage: kernel_arg_strategy(draw) and returns: kernel,  param