input: Write a python function to generate a list of squares up to a given number n.
  assert squares_up_to_n(5) == [0, 1, 4, 9, 16]
  assert squares_up_to_n(3) == [0, 1, 4]
  assert squares_up_to_n(0) == []
output: def squares_up_to_n(n):
      return [i * i for i in range(n)]