code: def test_sort_values_key(self):
      df = DataFrame(np.array([0, 5, np.nan, 3, 2, np.nan]))
  
      result = df.sort_values(0)
      expected = df.iloc[[0, 4, 3, 1, 2, 5]]
      tm.assert_frame_equal(result, expected)
  
      result = df.sort_values(0, key=lambda x: x + 5)
      expected = df.iloc[[0, 4, 3, 1, 2, 5]]
      tm.assert_frame_equal(result, expected)
  
      result = df.sort_values(0, key=lambda x: -x, ascending=False)
      expected = df.iloc[[0, 4, 3, 1, 2, 5]]
      tm.assert_frame_equal(result, expected)
  
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 2 for calling the TestDataFrameSortKey obj's underlying member method code with example usage: obj.test_sort_values_key() without return types