input: Write a function to determine if a given string contains all the words in a provided list. Return True if the string contains all the words, otherwise return False.
  
  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('This is a test', ['test', 'this', 'is', 'a'])==True
  assert contains_words('This is a test', ['test', 'this', 'is', 'not'])==False
  assert contains_words('This is a test', ['Test', 'THIS', 'Is'])==True
  assert contains_words('This is a test', [])==True
output: def contains_words(input_string, words):
      for word in words:
          if word.lower() not in input_string.lower():
              return False
      return True