code: def test_sort_performance(self):
      n = 2**10
      x = tf.range(n)
      x = tf.random.shuffle(x)
      actual = np.arange(n)
      private_x = tfe.define_private_input("server0", lambda: x)
  
      @tfe.function
      def test_sort(input):
          y = tfe.sort(input, axis=0, acc=True)
          return y.reveal().to_native()
  
      Performance.time_log("1st run")
      result = test_sort(private_x)
      np.testing.assert_allclose(result, actual, rtol=0.0, atol=0.01)
      Performance.time_log("1st run")
  
      Performance.time_log("2nd run")
      test_sort(private_x)
      Performance.time_log("2nd run")
  
file_path: tf-encrypted/examples/benchmark/operation/op_profile.py
imports: import argparse
  import unittest
  import numpy
  import tensorflow
  import tf_encrypted
  from tf_encrypted.performance import Performance
  from tf_encrypted.protocol import ABY3
  from tf_encrypted.protocol import Pond
  from tf_encrypted.protocol import SecureNN
label_desc: Use image node_id 2 for calling the TestOPProfile obj's underlying member method code with example usage: obj.test_sort_performance() and returns: y