input: Write a function to generate a list using a while loop in Python and append the current number to the list, given a specified upper limit. The function should return the generated list. If the upper limit is negative, return an empty list.
  
  assert generate_list(10) == [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  assert generate_list(0) == []
  assert generate_list(-5) == []
output: def generate_list(upper_limit):
      if upper_limit < 0:
          return []
      result = []
      i = 0
      while i < upper_limit:
          result.append(i)
          i += 1
      return result