code: def test_sort(self):
      keys, values = self._int_float_values.sort()
      self.assertEqual(
          keys,
          [
              TestValues.TestIntType(1),
              TestValues.TestIntType(3),
              TestValues.TestIntType(0),
              TestValues.TestIntType(2),
          ],
      )
      self.assertEqual(values, [4.4, 3.3, 2.2, 1.1])
      keys, values = self._tuple_float_float_values.sort()
      self.assertEqual(
          keys,
          [
              TestValues.TestTupleFloatType((3.0, 4.0)),
              TestValues.TestTupleFloatType((7.0, 8.0)),
              TestValues.TestTupleFloatType((1.0, 2.0)),
              TestValues.TestTupleFloatType((5.0, 6.0)),
          ],
      )
      self.assertEqual(values, [4.4, 3.3, 2.2, 1.1])
      keys, values = self._int_array_values.sort()
      self.assertEqual(
          keys,
          [
              TestValues.TestIntType(1),
              TestValues.TestIntType(3),
              TestValues.TestIntType(0),
              TestValues.TestIntType(2),
          ],
      )
      self.assertTrue(
          np.array_equal(values, np.array([4.4, 3.3, 2.2, 1.1]))
      )
      keys, values = self._int_tensor_values.sort()
      self.assertEqual(
          keys,
          [
              TestValues.TestIntType(1),
              TestValues.TestIntType(3),
              TestValues.TestIntType(0),
              TestValues.TestIntType(2),
          ],
      )
      self.assertTrue(
          torch.equal(values, torch.tensor([4.4, 3.3, 2.2, 1.1]))
      )
  
imports: import unittest
  from typing import Tuple, Union
  import numpy
  import torch
  from reagent.ope.estimators.types import ActionDistribution, TypeWrapper, Values
label_desc: Use image node_id 3 for calling the TestValues obj's underlying member method code with example usage: obj.test_sort() without return types