input: 
  def contains_words(input_string: str, words: List[str]) -> bool:
      """
       Checks if the input_string contains all of the words in the given list.
       >>> contains_words('This is a test', ['test', 'this', 'is'])
       True
       >>> contains_words('Hello world', ['world', 'hello'])
       False
       """
      input_string_lower = input_string.lower()
      for word in words:
          if word.lower() not in input_string_lower:
              return False
      return True
  
  # Example usage
  print(contains_words('This is a test', ['test', 'this', 'is'])) # True
  
output:     input_string_lower = input_string.lower()
      for word in words:
          if word.lower() not in input_string_lower:
              return False
      return True