code: def test_sort_values_item_cache(self, using_copy_on_write):
      # previous behavior incorrect retained an invalid _item_cache entry
      df = DataFrame(
          np.random.default_rng(2).standard_normal((4, 3)),
          columns=["A", "B", "C"],
      )
      df["D"] = df["A"] * 2
      ser = df["A"]
      assert len(df._mgr.blocks) == 2
  
      df.sort_values(by="A")
  
      if using_copy_on_write:
          ser.iloc[0] = 99
          assert df.iloc[0, 0] == df["A"][0]
          assert df.iloc[0, 0] != 99
      else:
          ser.values[0] = 99
          assert df.iloc[0, 0] == df["A"][0]
          assert df.iloc[0, 0] == 99
  
imports: import numpy
  import pytest
  import pandas
  from pandas import Categorical, DataFrame, NaT, Timestamp, date_range
  import pandas._testing
  from pandas.util.version import Version
label_desc: Use image node_id 20 for calling the TestDataFrameSortValues obj's underlying member method code with example usage: obj.test_sort_values_item_cache(using_copy_on_write) without return types