code: def test_to_numeric_downcast_string_large_float(data, downcast):
      ps = pd.Series(data)
      gs = cudf.from_pandas(ps)
  
      if downcast == "float":
          expected = pd.to_numeric(ps, downcast=downcast)
          got = cudf.to_numeric(gs, downcast=downcast)
  
          if PANDAS_GE_150:
              assert_eq(expected, got)
          else:
              # Pandas bug: https://github.com/pandas-dev/pandas/issues/19729
              with pytest.raises(
                  AssertionError, match="Series are different"
              ):
                  assert_eq(expected, got)
      else:
          expected = pd.Series([np.inf, -np.inf])
          with pytest.warns(
              UserWarning,
              match="Downcasting from float to int "
              "will be limited by float32 precision.",
          ):
              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 13 for calling a global function with example usage: test_to_numeric_downcast_string_large_float(data, downcast) without return types