code: def test_to_numeric_downcast_string_float(data, downcast):
      ps = pd.Series(data)
      gs = cudf.from_pandas(ps)
  
      expected = pd.to_numeric(ps, downcast=downcast)
  
      if downcast in {"signed", "integer", "unsigned"}:
          with pytest.warns(
              UserWarning,
              match="Downcasting from float to int "
              "will be limited by float32 precision.",
          ):
              got = cudf.to_numeric(gs, downcast=downcast)
      else:
          got = cudf.to_numeric(gs, downcast=downcast)
  
      assert_eq(expected, got)
  
imports: import numpy
  import pandas
  import pytest
  import cudf
  from cudf.core._compat import PANDAS_GE_150
  from cudf.testing._utils import NUMERIC_TYPES, assert_eq
  from cudf.utils.dtypes import np_dtypes_to_pandas_dtypes
label_desc: Use image node_id 12 for calling a global function with example usage: test_to_numeric_downcast_string_float(data, downcast) without return types