code: def test_series_cat_copy(copy_on_write):
      original_cow_setting = cudf.get_option("copy_on_write")
      cudf.set_option("copy_on_write", copy_on_write)
      s = cudf.Series([10, 20, 30, 40, 50], dtype="category")
      s1 = s.copy(deep=True)
      s2 = s1.copy(deep=True)
      s3 = s1.copy(deep=True)
  
      s[0] = 50
      assert_eq(s, cudf.Series([50, 20, 30, 40, 50], dtype=s.dtype))
      assert_eq(s1, cudf.Series([10, 20, 30, 40, 50], dtype="category"))
      assert_eq(s2, cudf.Series([10, 20, 30, 40, 50], dtype="category"))
      assert_eq(s3, cudf.Series([10, 20, 30, 40, 50], dtype="category"))
  
      s2[3] = 10
      s3[2:5] = 20
      assert_eq(s, cudf.Series([50, 20, 30, 40, 50], dtype=s.dtype))
      assert_eq(s1, cudf.Series([10, 20, 30, 40, 50], dtype=s.dtype))
      assert_eq(s2, cudf.Series([10, 20, 30, 10, 50], dtype=s.dtype))
      assert_eq(s3, cudf.Series([10, 20, 20, 20, 20], dtype=s.dtype))
      cudf.set_option("copy_on_write", original_cow_setting)
  
imports: import cupy
  import numpy
  import pandas
  import pytest
  import cudf
  from cudf import Series
  from cudf.testing._utils import NUMERIC_TYPES, OTHER_TYPES, assert_eq
label_desc: Use image node_id 16 for calling a global function with example usage: test_series_cat_copy(copy_on_write) without return types