code: def test_init_explainer_base_init_abritrary_model(
      handle, dtype, order, is_gpu_model, output_type
  ):
      bg = np.arange(10).reshape(5, 2).astype(np.float32)
  
      if handle:
          handle = Handle()
      else:
          handle = None
  
      explainer = SHAPBase(
          model=dummy_func,
          background=bg,
          order=order,
          order_default="F",
          link="identity",
          verbose=2,
          random_state=None,
          is_gpu_model=is_gpu_model,
          handle=handle,
          dtype=None,
          output_type=output_type,
      )
  
      assert explainer.ncols == 2
      assert explainer.nrows == 5
      assert np.all(cp.asnumpy(explainer.background) == bg)
      if not is_gpu_model or is_gpu_model is None:
          assert not explainer.is_gpu_model
      else:
          assert explainer.is_gpu_model
  
      if output_type is not None:
          assert explainer.output_type == output_type
      else:
          assert explainer.output_type == "numpy"
  
      # check that explainer defaults to order_default is order is not passed
      # explicitly
      if order is None:
          assert explainer.order == "F"
      else:
          assert explainer.order == order
  
      # check that we keep the model's handle if one is not passed explicitly
      if handle is not None:
          assert explainer.handle == handle
      else:
          isinstance(explainer.handle, Handle)
  
file_path: cuml/python/cuml/tests/explainer/test_explainer_base.py
imports: from cuml import LinearRegression
  from cuml.explainer.base import SHAPBase
  from pylibraft.common.handle import Handle
  import pytest
  from cuml.internals.safe_imports import cpu_only_import
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 2 for calling a global function with example usage: test_init_explainer_base_init_abritrary_model(handle, dtype, order, is_gpu_model, output_type) without return types