def test_hash(self): game1 = Connect4().make_moves(['a', 'f']) table = {game1: 'game1'} self.assertEqual(len(table), 1) self.assertEqual(table[game1], 'game1') game2 = Connect4().make_moves(['a', 'f']) table[game2] = 'game2' self.assertEqual(table[game1], 'game2') self.assertEqual(table[game2], 'game2') game3 = Connect4().make_moves(['a', 'f', 'a']) table[game3] = 'game3' self.assertEqual(len(table), 2) self.assertEqual(table[game3], 'game3')
def test_init_with_board_that_is_not_over_2(self): game = Connect4( [['O', ' ', ' ', 'X', ' ', ' ', ' '], ['X', ' ', ' ', 'O', ' ', ' ', ' '], ['O', ' ', ' ', 'X', ' ', ' ', ' '], ['X', ' ', ' ', 'O', ' ', ' ', ' '], ['O', ' ', ' ', 'X', ' ', ' ', ' '], ['X', 'X', ' ', 'O', ' ', ' ', ' ']] ) self.assertFalse(game.is_over()) self.assertFalse(game._is_win(game._boards[0])) self.assertFalse(game._is_win(game._boards[1])) self.assertEqual(game.cur_player(), 1) self.assertEqual(game.legal_moves(), ['b', 'c', 'e', 'f', 'g'])
def test_init_with_board_that_is_over(self): game = Connect4( [[' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', 'X', ' ', ' ', ' ', ' '], [' ', ' ', 'X', ' ', ' ', ' ', ' '], [' ', ' ', 'X', 'O', ' ', ' ', ' '], ['X', 'O', 'X', 'O', 'O', ' ', ' ']] ) self.assertTrue(game.is_over()) self.assertTrue(game._is_win(game._boards[0])) self.assertFalse(game._is_win(game._boards[1])) self.assertEqual(game._height, [1, 8, 18, 23, 29, 35, 42]) self.assertEqual(game.legal_moves(), [])
def test_init_with_board_that_is_not_over_1(self): game = Connect4( [['O', ' ', ' ', ' ', ' ', ' ', ' '], ['X', ' ', ' ', ' ', ' ', ' ', ' '], ['O', ' ', ' ', ' ', ' ', ' ', ' '], ['X', ' ', ' ', ' ', ' ', ' ', ' '], ['O', ' ', ' ', ' ', ' ', ' ', ' '], ['X', ' ', ' ', ' ', ' ', ' ', ' ']] ) self.assertFalse(game.is_over()) self.assertFalse(game._is_win(game._boards[0])) self.assertFalse(game._is_win(game._boards[1])) self.assertEqual(game.cur_player(), 0) self.assertEqual(game._height, [6, 7, 14, 21, 28, 35, 42]) self.assertEqual(game.legal_moves(), ['b', 'c', 'd', 'e', 'f', 'g'])
def test_init_with_board(self): game = Connect4( [[' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', 'X', ' ', ' ', ' ', ' '], [' ', ' ', 'X', ' ', ' ', ' ', ' '], [' ', ' ', 'X', 'O', ' ', ' ', ' '], ['X', 'O', 'X', 'O', 'O', ' ', ' ']] ) b = [[' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', 'X', ' ', ' ', ' ', ' '], [' ', ' ', 'X', ' ', ' ', ' ', ' '], [' ', ' ', 'X', 'O', ' ', ' ', ' '], ['X', 'O', 'X', 'O', 'O', ' ', ' ']] self.assertEqual(game.board, b)
def setUp(self): self.game = Connect4()
def test_equal(self): moves = ['a', 'b'] self.game.make_moves(moves) other = Connect4().make_moves(moves) self.assertEqual(self.game, other)
def test_not_equal(self): other = Connect4().make_moves(['a']) self.assertNotEqual(self.game, other)