input: Write a function to find the most efficient path for a robot to take from its current location to the destination. The function should return the path as a list of coordinates if it exists, otherwise it should return None. If the input is invalid, the function should return None. 
  
  assert find_path((4, 2), (9, 9)) == [(4, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (9, 3), (9, 4), (9, 5), (9, 6), (9, 7), (9, 8), (9, 9)]
  assert find_path((0, 0), (1, 1)) == [(0, 0), (1, 0), (1, 1)]
  assert find_path((2, 2), (2, 2)) == [(2, 2)]
  assert find_path((-1, -1), (1, 1)) == None
  assert find_path((5, 5), (10, 10)) == None
output: def find_path(start, end):
      if start[0] < 0 or start[1] < 0 or end[0] < 0 or end[1] < 0:
          return None
      if start == end:
          return [start]
      path = []
      x, y = start
      while x < end[0]:
          path.append((x, y))
          x += 1
      while y < end[1]:
          path.append((x, y))
          y += 1
      path.append(end)
      return path