input: Write a function to simulate a rock-paper-scissors game between two players. The function should take two arguments representing the choices of Player 1 and Player 2, and return a string indicating the result of the game ("Player 1 wins!", "Player 2 wins!", or "It is a draw!"). If either player makes an invalid choice, the function should return "Invalid choice!".
  
  def play_game(player1, player2):
      valid_choices = {'rock', 'paper', 'scissors'}
      if player1 not in valid_choices or player2 not in valid_choices:
          return "Invalid choice!"
      rules = {'rock': 'scissors', 'scissors': 'paper', 'paper': 'rock'}
      if player1 == player2:
          return 'It is a draw!'
      elif rules[player1] == player2:
          return 'Player 1 wins!'
      else:
          return 'Player 2 wins!'
  
  assert play_game('rock', 'scissors')=='Player 1 wins!'
  assert play_game('scissors', 'rock')=='Player 2 wins!'
  assert play_game('rock', 'paper')=='Player 2 wins!'
  assert play_game('scissors', 'scissors')=='It is a draw!'
  assert play_game('invalid', 'rock')=='Invalid choice!'
output: def play_game(player1, player2):
      valid_choices = {'rock', 'paper', 'scissors'}
      if player1 not in valid_choices or player2 not in valid_choices:
          return "Invalid choice!"
      rules = {'rock': 'scissors', 'scissors': 'paper', 'paper': 'rock'}
      if player1 == player2:
          return 'It is a draw!'
      elif rules[player1] == player2:
          return 'Player 1 wins!'
      else:
          return 'Player 2 wins!'