code: def test_swap_at_index(self):
      self.assertEqual([2, 1, 3, 4], swap_at_index([1, 2, 3, 4], 0, 1))
      self.assertEqual([4, 2, 3, 1], swap_at_index([1, 2, 3, 4], 3, 0))
      self.assertEqual([1, 3, 2, 4], swap_at_index([1, 2, 3, 4], 1, 2))
      num = random.randint(200, 1000)
      test_list = list(range(num))
      random.shuffle(test_list)
  
      for i in range(num):
          if test_list[i] == i:
              continue
          while test_list[i] != i:
              test_list = swap_at_index(test_list, test_list[i], i)
      self.assertEqual(list(range(num)), test_list)
  
imports: import unittest
  from textflint.common.utils.list_op import *
label_desc: Use image node_id 10 for calling the TestListOp obj's underlying member method code with example usage: obj.test_swap_at_index() without return types