def test_invalid_four_moves(self): g = Game() g.place(0, 0, g.EX) g.place(1, 0, g.OH) g.place(0, 1, g.EX) g.place(2, 1, g.EX) self.assertFalse(g.is_valid_board())
def test_won_twice_plus(self): g = Game() g.place(0, 1, g.EX) g.place(1, 0, g.EX) g.place(1, 1, g.EX) g.place(1, 2, g.EX) g.place(2, 1, g.EX) g.place(0, 0, g.OH) g.place(0, 2, g.OH) g.place(2, 0, g.OH) g.place(2, 2, g.OH) self.assertFalse(g.is_valid_board())
def test_winner_oh(self): g = Game() g.place(0, 0, g.OH) self.assertTrue(g.is_valid_board()) g.place(1, 0, g.EX) self.assertTrue(g.is_valid_board()) g.place(0, 1, g.OH) self.assertTrue(g.is_valid_board()) g.place(1, 1, g.EX) self.assertTrue(g.is_valid_board()) g.place(0, 2, g.OH) self.assertTrue(g.is_valid_board()) self.assertEqual(g.get_winning_player(), g.OH)
def test_two_winners(self): g = Game() g.place(0, 0, g.EX) g.place(0, 1, g.EX) g.place(0, 2, g.EX) g.place(1, 0, g.OH) g.place(1, 1, g.OH) g.place(1, 2, g.OH) self.assertFalse(g.is_valid_board())
def test_valid_single_move(self): g = Game() g.place(0, 0, g.EX) self.assertTrue(g.is_valid_board())
def test_row_win_oh(self): g = Game() g.place(0, 0, g.OH) g.place(0, 1, g.OH) g.place(0, 2, g.OH) self.assertEqual(g.get_winning_player(), g.OH)
def test_diag_win2(self): g = Game() g.place(0, 2, g.EX) g.place(1, 1, g.EX) g.place(2, 0, g.EX) self.assertEqual(g.get_winning_player(), g.EX)
def test_col_win(self): g = Game() g.place(0, 0, g.EX) g.place(1, 0, g.EX) g.place(2, 0, g.EX) self.assertEqual(g.get_winning_player(), g.EX)
def test_position1(self): g = Game() g.place(1, 1, g.EX) self.assertEqual(g.get_position(1, 1), g.EX)
def test_single_move(self): """Ensure a single move doesn't create an error.""" g = Game() g.place(1, 1, g.EX)
def test_bogus_player(self): g = Game() with self.assertRaises(ValueError): g.place(0, 0, 42)
def test_invalid_placement2(self): g = Game() with self.assertRaises(ValueError): g.place(3, 0, g.EX)
def test_double_move(self): g = Game() g.place(0, 0, g.EX) with self.assertRaises(ValueError): g.place(0, 0, g.EX)
def test_valid_three_moves(self): g = Game() g.place(0, 0, g.EX) g.place(1, 0, g.OH) g.place(0, 1, g.EX) self.assertTrue(g.is_valid_board())