code: def test_base_children_get_param_names(child_class: str):
      """
      This test ensures that the arguments in `Base.__init__` are available in
      all derived classes `get_param_names`
      """
  
      klass = all_base_children[child_class]
  
      sig = inspect.signature(klass, follow_wrapped=True)
  
      try:
          bound = sig.bind()
          bound.apply_defaults()
      except TypeError:
          pytest.skip(
              "{}.__init__ requires non-default arguments to create. Skipping.".format(
                  klass.__name__
              )
          )
      else:
          # Create an instance
          obj = klass(*bound.args, **bound.kwargs)
  
          param_names = obj.get_param_names()
  
          # Now ensure the base parameters are included in get_param_names
          for name, param in sig.parameters.items():
              if param.name == "output_mem_type":
                  continue  # TODO(wphicks): Add this to all algos
              if (
                  param.kind == inspect.Parameter.VAR_KEYWORD
                  or param.kind == inspect.Parameter.VAR_POSITIONAL
              ):
                  continue
  
              assert name in param_names
  
file_path: cuml/python/cuml/tests/test_base.py
imports: import inspect
  import cuml
  import pytest
  import numpydoc.docscrape
  from pylibraft.common.cuda import Stream
  from cuml.testing.utils import get_classes_from_package, small_classification_dataset
  from cuml._thirdparty.sklearn.utils.skl_dependencies import BaseEstimator
label_desc: Use image node_id 6 for calling a global function with example usage: test_base_children_get_param_names(child_class) without return types