input: Write a function to execute a valid insertion sort on a given list of integers. The function should return the sorted list. The function should handle empty lists by returning an empty list.
  def insertion_sort(arr):
   for i in range(1, len(arr)):
     key = arr[i]
     j = i - 1
     while j >= 0 and key < arr[j]:
       arr[j + 1] = arr[j]
       j = j - 1
     arr[j + 1] = key
   return arr
  
  assert insertion_sort([4, 3, 2, 10, 12, 1, 5, 6])==[1, 2, 3, 4, 5, 6, 10, 12]
  assert insertion_sort([3])==[3]
  assert insertion_sort([])==[]
  assert insertion_sort([5, 2, 9, 1, 5, 6])==[1, 2, 5, 5, 6, 9]
output: def insertion_sort(arr):
   for i in range(1, len(arr)):
     key = arr[i]
     j = i - 1
     while j >= 0 and key < arr[j]:
       arr[j + 1] = arr[j]
       j = j - 1
     arr[j + 1] = key
   return arr