# Check that the users entered a valid # option based on a list def rps_compare(question, valid_ans=("yes", "no")): while True: user_response = input(question).lower() for item in valid_ans: if item == user_response: return item elif user_response == item[0]: return item #automated testing is below in the form (test_case, expected_value) to_test = [ ('rock', 'rock', 'tie'), ('rock', 'paper', 'lose'), ('rock', 'scissors', 'win'), ('paper', 'rock', 'win'), ('paper', 'paper', 'tie'), ('paper', 'scissors', 'lose'), ('scissors', 'rock', 'lose'), ('scissors', 'paper', 'win'), ('scissors', 'scissors', 'tie'), ] # run tests for item in to_test: user = item[0] comp = item[1] expected = item[2] actual = rps_compare(user, comp) if actual == expected: print(f" Passed! Case: {user} vs {comp}, expected: {expected}, received: {actual}") else: print(f" Failed! Case: {user} vs {comp}, expected: {expected}, received: {actual}")