code: def test_codes(self, verify, codes, exp_codes):
      values = np.array([3, 1, 2, 0, 4])
      expected = np.array([0, 1, 2, 3, 4])
  
      result, result_codes = safe_sort(
          values, codes, use_na_sentinel=True, verify=verify
      )
      expected_codes = np.array(exp_codes, dtype=np.intp)
      tm.assert_numpy_array_equal(result, expected)
      tm.assert_numpy_array_equal(result_codes, expected_codes)
  
imports: from collections import defaultdict
  from datetime import datetime
  from itertools import product
  import numpy
  import pytest
  from pandas import NA, DataFrame, MultiIndex, Series, array, concat, merge
  import pandas._testing
  from pandas.core.algorithms import safe_sort
  import pandas.core.common
  from pandas.core.sorting import _decons_group_index, get_group_index, is_int64_overflow_possible, lexsort_indexer, nargsort
label_desc: Use image node_id 2 for calling the TestSafeSort obj's underlying member method code with example usage: obj.test_codes(verify, codes, exp_codes) without return types