def test_wins_blocked(self): self.board[2, 0] = o self.board[2, 1] = o self.board[2, 2] = x (white_moves, black_moves) = ttt.find_moves(self.board) self.assertEqual(white_moves[0], ttt.Move(1, 1)) self.assertEqual(black_moves[0], ttt.Move(1, 1))
def test_x_place_to_win(self): self.board[0, 0] = x self.board[2, 2] = x (white_moves, black_moves) = ttt.find_moves(self.board) self.assertEqual(white_moves[0], ttt.Move(1, 1)) self.assertEqual(black_moves[0], ttt.Move(1, 1)) self.assertEqual(white_moves[0].power, 10) self.assertEqual(black_moves[0].power, 100)
def test_o_place_to_win(self): self.board[2, 0] = o self.board[2, 1] = o (white_moves, black_moves) = ttt.find_moves(self.board) self.assertEqual(white_moves[0], ttt.Move(2, 2)) self.assertEqual(black_moves[0], ttt.Move(2, 2)) self.assertEqual(white_moves[0].power, 100) self.assertEqual(black_moves[0].power, 10)
def test_another_off_one_win(self): self.board[0, 0] = o self.board[0, 1] = x self.board[1, 2] = x (white_moves, black_moves) = ttt.find_moves(self.board) self.assertEqual(white_moves[0], ttt.Move(1, 1)) self.assertEqual(black_moves[0], ttt.Move(1, 1)) self.assertEqual(white_moves[0].power, 5) self.assertEqual(black_moves[0].power, 6)
def test_one_from_win_move(self): self.board[0, 1] = o self.board[1, 2] = o self.board[1, 1] = x (white_moves, black_moves) = ttt.find_moves(self.board) self.assertEqual(white_moves[0], ttt.Move(0, 2)) self.assertEqual(black_moves[0], ttt.Move(0, 2)) self.assertEqual(white_moves[0].power, 6) self.assertEqual(black_moves[0].power, 5)
def test_same_win_square(self): self.board[0, 0] = x self.board[2, 2] = x self.board[1, 0] = o self.board[1, 2] = o (white_moves, black_moves) = ttt.find_moves(self.board) self.assertEqual(white_moves[0], ttt.Move(1, 1)) self.assertEqual(black_moves[0], ttt.Move(1, 1)) self.assertEqual(white_moves[0].power, 100) self.assertEqual(black_moves[0].power, 100)
def test_double_win_in_two(self): self.board[0, 1] = o self.board[1, 2] = o self.board[1, 0] = x self.board[2, 1] = x (white_moves, black_moves) = ttt.find_moves(self.board) self.assertEqual(white_moves[0], ttt.Move(0, 2)) self.assertEqual(black_moves[0], ttt.Move(2, 0)) self.assertEqual(white_moves[0].power, 6) self.assertEqual(black_moves[0].power, 6) self.assertEqual(white_moves[1], ttt.Move(2, 0)) self.assertEqual(black_moves[1], ttt.Move(0, 2)) self.assertEqual(white_moves[1].power, 5) self.assertEqual(black_moves[1].power, 5)
def test_inserting_move(self): board = self.board.copy() xc = 2 yc = 2 cur_move = Counter(1) # 2 would be the next move, 1 makes this replace the last move cur_game = Counter(1) game_hist = [ttt.GameStats(1, o), ttt.GameStats(2, x)] game_hist[1].add_move(ttt.Move(0,0)) game_hist[1].add_move(ttt.Move(1,1)) # setting a move that will be replaced board[0, 0] = x self.assertEqual(game_hist[1].num_moves, 2) ttt.make_move(self.ax, board, xc, yc, cur_move, cur_game, game_hist) self.assertEqual(cur_move, 2) self.assertEqual(cur_game, 1) self.board[0, 0] = x self.board[2, 2] = o np.testing.assert_array_equal(board, self.board)
def test_lt(self): self.assertTrue(self.move3 < self.move2) self.assertFalse(self.move1 < self.move1) self.assertTrue(self.move2 < ttt.Move(1, 3, 5)) self.assertFalse(self.move2 < ttt.Move(1, 3, 4)) self.assertTrue(self.move2 < ttt.Move(2, 3, 4)) self.assertFalse(self.move2 < ttt.Move(0, 3, 4)) self.assertTrue(self.move2 < ttt.Move(1, 4, 4)) self.assertFalse(self.move2 < ttt.Move(1, 2, 4))
def setUp(self): self.move1 = ttt.Move(0, 1) self.move2 = ttt.Move(1, 3, 4) self.move3 = ttt.Move(1, 3, 2)
def setUp(self): self.move1 = ttt.Move(0, 0) self.gamestats1 = ttt.GameStats(0, o, n) self.gamestats2 = ttt.GameStats(0, o, n, [self.move1, self.move1, self.move1]) self.game_hist = [self.gamestats1, self.gamestats2]
def setUp(self): self.moves = [ttt.Move(0, 0), ttt.Move(1, 1), ttt.Move(2, 1)] self.board = np.full((3, 3), n, dtype=int)
def test_no_wins(self): (white_moves, black_moves) = ttt.find_moves(self.board) self.assertEqual(white_moves[0], ttt.Move(1, 1)) self.assertEqual(black_moves[0], ttt.Move(1, 1))