def METHOD_NAME(handle, dtype, order):
    bg = np.arange(10).reshape(5, 2).astype(np.float32)
    y = np.arange(5).astype(np.float32)
    bg_df = cudf.DataFrame(bg)
    model = cuLR().fit(bg, y)
    if handle:
        handle = Handle()
    else:
        handle = None
    explainer = SHAPBase(
        model=model.predict,
        background=bg_df,
        order=order,
        link="identity",
        verbose=2,
        random_state=None,
        is_gpu_model=None,
        handle=handle,
        dtype=None,
        output_type=None,
    )
    assert explainer.ncols == 2
    assert explainer.nrows == 5
    assert np.all(cp.asnumpy(explainer.background) == bg)
    assert np.all(explainer.feature_names == bg_df.columns)
    assert explainer.is_gpu_model
    # check that we infer the order from the model (F for LinearRegression) if
    # it 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:
        assert explainer.handle == model.handle