input: Write a function that checks if a given string contains all the words in a provided list of words. If the string contains all the words, it should return True; otherwise, it should return False. If the list of words is empty, the function should return True.
  
  def contains_words(input_string, words):
      for word in words:
          if word.lower() not in input_string.lower():
              return False
      return True
  
  assert contains_words('This is a test', ['test', 'this', 'is'])==True
  assert contains_words('How are you', ['how', 'you'])==True
  assert contains_words('Hello World', ['world', 'earth'])==False
  assert contains_words('This is interesting', ['interest', 'learning', 'this'])==False
  assert contains_words('Programming is fun', [])==True
output: def contains_words(input_string, words):
      for word in words:
          if word.lower() not in input_string.lower():
              return False
      return True