input: Write a function that takes a list of integers and returns a list of tuples containing the index and square of each number in the original list. If the input list is empty, the function should return an empty list.
  
  
  def square_index(nums):
      return [(index, num ** 2) for index, num in enumerate(nums)]
  
  # Test cases
  assert square_index([1, 2, 3, 4, 5]) == [(0, 1), (1, 4), (2, 9), (3, 16), (4, 25)]
  assert square_index([]) == []
  assert square_index([0]) == [(0, 0)]
  assert square_index([-1, -2, -3]) == [(0, 1), (1, 4), (2, 9)]
  
output: def square_index(nums):
      return [(index, num ** 2) for index, num in enumerate(nums)]