code: def test_series_setitem_upcasting(dtype, indices):
      sr = pd.Series([0, 0, 0], dtype=dtype)
      cr = cudf.from_pandas(sr)
      assert_eq(sr, cr)
      # Must be a non-integral floating point value that can't be losslessly
      # converted to float32, otherwise pandas will try and match the source
      # column dtype.
      new_value = np.float64(np.pi)
      col_ref = cr._column
      sr[indices] = new_value
      cr[indices] = new_value
      if PANDAS_GE_150:
          assert_eq(sr, cr)
      else:
          # pandas bug, incorrectly fails to upcast from float32 to float64
          assert_eq(sr.values, cr.values)
      if dtype == np.float64:
          # no-op type cast should not modify backing column
          assert col_ref == cr._column
  
imports: import numpy
  import pandas
  import pytest
  import cudf
  from cudf.core._compat import PANDAS_GE_150
  from cudf.testing._utils import assert_eq, assert_exceptions_equal
label_desc: Use image node_id 15 for calling a global function with example usage: test_series_setitem_upcasting(dtype, indices) without return types