input: Write a function to create an autocomplete system that predicts words based on the input text. The function should generate word candidates, filter them, rank them, and return the top 5 predictions. If there are fewer than 5 predictions, return all available predictions. If the input text is empty, return an empty list.
  assert autocomplete("hello")==["hello", "hell", "help", "helloworld", "hellothere"]
  assert autocomplete("a")==["algorithm", "apple", "application", "array", "algebra"]
  assert autocomplete("")==[]
  assert autocomplete("search")==["search", "searchable", "searching", "searcher", "searches"]
  assert autocomplete("pro")==["program", "process", "problem", "product", "project"]
output: def autocomplete(input_text):
      word_candidates = ["hello", "hell", "help", "helloworld", "hellothere", 
                        "algorithm", "apple", "application", "array", "algebra",
                        "search", "searchable", "searching", "searcher", "searches",
                        "program", "process", "problem", "product", "project"]
      if not input_text:
          return []
      filtered_words = [word for word in word_candidates if word.startswith(input_text)]
      return sorted(filtered_words)[:5]