code: def test_linear_regression_input_copy(dataset, algorithm, xp, copy):
      X, y = dataset
      X, y = xp.asarray(X), xp.asarray(y)
      X_copy = X.copy()
  
      with (
          pytest.warns(UserWarning)
          if copy in (None, ...)
          else nullcontext()
      ):
          if copy is ...:  # no argument
              cuLR = cuLinearRegression(algorithm=algorithm)
          else:
              cuLR = cuLinearRegression(
                  algorithm=algorithm, copy_X=copy
              )
  
      cuLR.fit(X, y)
  
      if (X.shape[1] == 1 and xp is cp) and copy is False:
          assert not array_equal(X, X_copy)
      else:
          assert array_equal(X, X_copy)
  
imports: from contextlib import nullcontext
  from distutils.version import LooseVersion
  from functools import lru_cache
  import pytest
  import sklearn
  from cuml.internals.array import elements_in_representable_range
  from cuml.internals.safe_imports import cpu_only_import, cpu_only_import_from, gpu_only_import
  from cuml.testing.strategies import regression_datasets, split_datasets, standard_classification_datasets, standard_regression_datasets
  from cuml.testing.utils import array_difference, array_equal, quality_param, small_classification_dataset, small_regression_dataset, stress_param, unit_param
  from hypothesis import assume, example, given, note
  from hypothesis import strategies
  from hypothesis import target
  from hypothesis.extra.numpy import floating_dtypes
  from sklearn.datasets import load_breast_cancer, load_digits, make_classification, make_regression
  from sklearn.linear_model import LinearRegression
  from sklearn.linear_model import LogisticRegression
  from sklearn.linear_model import Ridge
  from sklearn.model_selection import train_test_split
  from cuml import ElasticNet
  from cuml import LinearRegression
  from cuml import LogisticRegression
  from cuml import Ridge
label_desc: Use image node_id 30 for calling a global function with example usage: test_linear_regression_input_copy(dataset, algorithm, xp, copy) without return types