input: Write a python function to generate a list of Fibonacci numbers up to a given limit.
  assert fibonacci_up_to(20) == [0, 1, 1, 2, 3, 5, 8, 13]
  assert fibonacci_up_to(10) == [0, 1, 1, 2, 3, 5, 8]
  assert fibonacci_up_to(1) == [0, 1, 1]
output: def fibonacci_up_to(limit):
      if limit < 0:
          return []
      fibonacci_numbers = [0, 1]
      while True:
          next_number = fibonacci_numbers[-1] + fibonacci_numbers[-2]
          if next_number > limit:
              break
          fibonacci_numbers.append(next_number)
      return fibonacci_numbers