def test_display_game(self, mock_print): """Test that the output of display game matches history.""" mm = MasterMind(8) mm.secret = 'ywwr' guess_1 = Guess('rbwr') mm.guesses.append(guess_1) mm.evaluate_guess() guess_2 = Guess('wwrr') mm.guesses.append(guess_2) mm.evaluate_guess() guess_3 = Guess('ywrr') mm.guesses.append(guess_3) mm.evaluate_guess() mm.display_game() self.assertEqual(5, mock_print.call_count) expected = [ call('------------------------'), call(guess_1), call(guess_2), call(guess_3), call('------------------------'), ] mock_print.assert_has_calls(expected)
def test_evaluate_guess_0_0(self): """Test no matches at all.""" guess = Guess('rgby') mm = MasterMind(8) mm.secret = 'Gmcw' mm.guesses.append(guess) mm.evaluate_guess() self.assertEqual(0, mm.guesses[0].black) self.assertEqual(0, mm.guesses[0].white)
def test_evaluate_double_color_guess(self): """Test that a double color in the guess only counts once.""" guess = Guess('rbwr') mm = MasterMind(8) mm.secret = 'grgy' mm.guesses.append(guess) mm.evaluate_guess() self.assertEqual(1, mm.guesses[0].black) self.assertEqual(0, mm.guesses[0].white)
def test_evaluate_guess_4_0(self): """Test 4 matches in wrong spots.""" guess = Guess('rgby') mm = MasterMind(8) mm.secret = 'gbyr' mm.guesses.append(guess) mm.evaluate_guess() self.assertEqual(4, mm.guesses[0].black) self.assertEqual(0, mm.guesses[0].white)
def test_evaluate_guess_win(self): """Test 4 matches in wrong spots.""" guess = Guess('rgby') mm = MasterMind(8) mm.secret = 'rgby' mm.guesses.append(guess) mm.display_game_over = MagicMock() mm.evaluate_guess() self.assertTrue(mm.game_over) self.assertTrue(mm.winner)
def spill(): game = MasterMind() count = 0 resultat = ["X", "X", "X", "X"] while "X" in resultat: brukerGjett = game.hent_bruker_gjett(taInput()) resultat = game.sjekk_gjett(brukerGjett) print(resultat) count += 1 print("Gratulerer! Du klarte det på", count, "forsøk!")
def test_play_game_over(self): """Test that the game ends when game_over is False.""" mm = MasterMind(3) mm.display_game = MagicMock() mm.get_next_guess = MagicMock() mm.evaluate_guess = MagicMock() mm.update_points = MagicMock() mm.game_over = True mm.play() self.assertEqual(0, mm.display_game.call_count) self.assertEqual(0, mm.get_next_guess.call_count) self.assertEqual(0, mm.evaluate_guess.call_count) self.assertEqual(0, mm.update_points.call_count)
def test_display_game_over_win(self, mock_raw_input): """Test that the right message is displayed on a win.""" mm = MasterMind(4) mm.winner = True mm.save_score = MagicMock() mm.display_game_over() expected = [ call('enter your initials:\n'), call('Would you like to see the high scores? [y/N]\n'), call().__eq__('y') ] mock_raw_input.assert_called_with(expected)
def test_play(self): """Test that the game continues when game_over is False.""" mm = MasterMind(3) mm.display_game = MagicMock() mm.get_next_guess = MagicMock() mm.evaluate_guess = MagicMock() mm.update_points = MagicMock() mm.game_over = False def side_effect(): mm.game_over = True mm.evaluate_guess.side_effect = side_effect mm.play() self.assertEqual(1, mm.display_game.call_count) self.assertEqual(1, mm.get_next_guess.call_count) self.assertEqual(1, mm.evaluate_guess.call_count) self.assertEqual(1, mm.update_points.call_count)
def test_num_colors_too_big(self): """Test input of more colors than allowed.""" mm = MasterMind(20) self.assertEqual(8, len(mm.colors)) self.assertEqual(('r', 'G', 'y', 'g', 'b', 'm', 'c', 'w'), mm.colors)
def test_num_colors_too_small(self): """Test input of fewer colors than allowed.""" mm = MasterMind(0) self.assertEqual(3, len(mm.colors)) self.assertEqual(('r', 'G', 'y'), mm.colors)
def test_num_colors_good(self): """Test a happy case for number of colors.""" mm = MasterMind(4) self.assertEqual(4, len(mm.colors)) self.assertEqual(('r', 'G', 'y', 'g'), mm.colors)