コード例 #1
0
 def test_capture_p1_not_okay_opp_side(self):
     g = Game()
     g._board = [1, 0, 0, 4, 1, 3, 0, 2, 0, 0, 0, 1, 0, 0]
     g.move(5)
     self.assertEqual(g._board, [1, 0, 0, 4, 1, 0, 1, 3, 1, 0, 0, 1, 0, 0])
     self.assertEqual(g.score(), (1, 0))
     self.assertEqual(g.turn_player(), 2)
コード例 #2
0
 def test_capture_p1_okay(self):
     g = Game()
     g._board = [1, 0, 0, 4, 0, 0, 0, 2, 3, 0, 0, 1, 0, 0]
     g.move(0)
     self.assertEqual(g._board, [0, 0, 0, 4, 0, 0, 2, 2, 3, 0, 0, 0, 0, 0])
     self.assertEqual(g.score(), (2, 0))
     self.assertEqual(g.turn_player(), 2)
コード例 #3
0
 def test_p1_Win_over(self):
     g = Game()
     g._board = [1, 0, 0, 0, 15, 1, 24, 0, 0, 0, 0, 0, 3, 5]
     g.move(4)
     self.assertEqual(g._board, [2, 1, 1, 1, 1, 3, 26, 1, 1, 1, 1, 1, 4, 5])
     self.assertEqual(g.score(), (26, 5))
     self.assertTrue(g.over())
コード例 #4
0
 def test_move_p2(self):
     """Test move picks a max move for player 2"""
     game = Game()
     game.move(4)
     self.assertEqual(game.turn_player(), 2)
     move = AgentMax().move(game)
     self.assertEqual(move, 10)
コード例 #5
0
 def test_last_in_end_p2(self):
     g = Game()
     g.move(0)
     g.move(9)
     self.assertEqual(g._board, [0, 5, 5, 5, 5, 4, 0, 4, 4, 0, 5, 5, 5, 1])
     self.assertEqual(g.score(), (0, 1))
     self.assertEqual(g.turn_player(), 2)
コード例 #6
0
def game(client, session):
    game = Game(player_1="Tester", player_2="Checker")
    session.add(game)
    session.commit()
    yield game
    session.delete(game)
    session.commit()
コード例 #7
0
 def test_move_01(self):
     g = Game()
     g.move(1)
     self.assertEqual(g._board, [4, 0, 5, 5, 5, 5, 0, 4, 4, 4, 4, 4, 4, 0])
     self.assertEqual(g.turn_player(), 2)
     self.assertEqual(g.history(),
                      [[4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 0]])
コード例 #8
0
 def test_capture_p1_not_okay_empty_opp(self):
     g = Game()
     g._board = [1, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 1, 2]
     g.move(0)
     self.assertEqual(g._board, [0, 1, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 1, 2])
     self.assertEqual(g.score(), (2, 2))
     self.assertEqual(g.turn_player(), 2)
コード例 #9
0
ファイル: test_agent_exact.py プロジェクト: zakizadeh/mancala
 def test_move_p2(self):
     '''Test move correctly picks 2nd player move'''
     game = Game()
     game.move(5)
     self.assertEqual(game.turn_player(), 2)
     move = AgentExact().move(game)
     self.assertEqual(move, 8)
コード例 #10
0
 def test_capture_score_not_okay(self):
     g = Game()
     g._board = [1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 5]
     g.move(5)
     self.assertEqual(g._board, [1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 5])
     self.assertEqual(g.score(), (1, 5))
     self.assertEqual(g.turn_player(), 1)
コード例 #11
0
 def test_p1_Win_exact(self):
     g = Game()
     g._board = [1, 0, 0, 0, 0, 1, 24, 0, 0, 0, 0, 0, 3, 5]
     g.move(5)
     self.assertEqual(g._board, [1, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 3, 5])
     self.assertEqual(g.score(), (25, 5))
     self.assertTrue(g.over())
コード例 #12
0
 def test_capture_p1_not_okay_grand_slam(self):
     g = Game()
     g._board = [1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1]
     g.move(0)
     self.assertEqual(g._board, [0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1])
     self.assertEqual(g.score(), (1, 1))
     self.assertEqual(g.turn_player(), 2)
コード例 #13
0
 def test_Illegal_p2_choose_wrong(self):
     g = Game()
     g.move(0)
     g.move(2)
     self.assertEqual(g._board, [0, 5, 5, 5, 5, 4, 0, 4, 4, 4, 4, 4, 4, 0])
     self.assertEqual(g.score(), (0, 0))
     self.assertEqual(g.turn_player(), 2)
コード例 #14
0
 def test_move_04(self):
     g = Game()
     g.move(4)
     self.assertEqual(g._board, [4, 4, 4, 4, 0, 5, 1, 5, 5, 4, 4, 4, 4, 0])
     self.assertEqual(g.score(), (1, 0))
     self.assertEqual(g.turn_player(), 2)
     self.assertEqual(g.history(),
                      [[4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 0]])
コード例 #15
0
 def test_side_01_empty(self):
     g = Game()
     g._board = [0, 0, 0, 0, 0, 4, 20, 5, 0, 0, 0, 0, 10, 13]
     g.move(5)
     self.assertEqual(g._board,
                      [0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 31])
     self.assertEqual(g.score(), (21, 31))
     self.assertTrue(g.over())
コード例 #16
0
 def test_p2_Win_exact(self):
     g = Game()
     g._board = [1, 0, 0, 0, 0, 1, 5, 1, 0, 0, 0, 0, 1, 24]
     g._player_one = False
     g.move(12)
     self.assertEqual(g._board, [1, 0, 0, 0, 0, 1, 5, 1, 0, 0, 0, 0, 0, 25])
     self.assertEqual(g.score(), (5, 25))
     self.assertTrue(g.over())
コード例 #17
0
 def test_capture_p2_not_okay_grand_slam(self):
     g = Game()
     g._board = [1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1]
     g._player_one = False
     g.move(11)
     self.assertEqual(g._board, [1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1])
     self.assertEqual(g.score(), (1, 1))
     self.assertEqual(g.turn_player(), 1)
コード例 #18
0
 def test_capture_p2_not_okay_empty_opp(self):
     g = Game()
     g._board = [1, 0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 1, 2]
     g._player_one = False
     g.move(7)
     self.assertEqual(g._board, [1, 0, 0, 0, 0, 1, 2, 0, 1, 0, 0, 0, 1, 2])
     self.assertEqual(g.score(), (2, 2))
     self.assertEqual(g.turn_player(), 1)
コード例 #19
0
 def test_Illegal_empty(self):
     g = Game()
     g.move(0)
     g.move(7)
     g.move(0)
     self.assertEqual(g._board, [0, 5, 5, 5, 5, 4, 0, 0, 5, 5, 5, 5, 4, 0])
     self.assertEqual(g.score(), (0, 0))
     self.assertEqual(g.turn_player(), 1)
コード例 #20
0
 def test_p2_Win_over(self):
     g = Game()
     g._board = [1, 0, 0, 0, 0, 1, 5, 1, 0, 0, 0, 0, 15, 24]
     g._player_one = False
     g.move(12)
     self.assertEqual(g._board, [3, 1, 1, 1, 1, 2, 5, 2, 1, 1, 1, 1, 1, 26])
     self.assertEqual(g.score(), (5, 26))
     self.assertTrue(g.over())
コード例 #21
0
ファイル: test_game.py プロジェクト: Leonie-/mancala-python
def test_creates_a_new_game():
    mock_mancala_board = mock.Mock()
    mock_player_one = mock.Mock()
    mock_player_two = mock.Mock()

    game = Game(mock_mancala_board, mock_player_one, mock_player_two)
    assert game.game == mock_mancala_board
    assert game.players == [mock_player_one, mock_player_two]
コード例 #22
0
 def test_capture_p2_not_okay_opp_side(self):
     g = Game()
     g._board = [1, 0, 0, 1, 0, 0, 0, 2, 3, 0, 0, 1, 0, 0]
     g._player_one = False
     g.move(11)
     self.assertEqual(g._board, [0, 0, 0, 1, 0, 0, 0, 2, 3, 0, 0, 0, 0, 2])
     self.assertEqual(g.score(), (0, 2))
     self.assertEqual(g.turn_player(), 1)
コード例 #23
0
 def test_capture_p1(self):
     """Max should spot a capture as the highest option"""
     game = Game([1, 0, 0, 4, 0, 0, 0, 2, 3, 0, 0, 1, 0, 0])
     move = AgentMax().move(game)
     self.assertEqual(move, 0)
     game.move(move)
     self.assertEqual(game.board(),
                      [0, 0, 0, 4, 0, 0, 2, 2, 3, 0, 0, 0, 0, 0])
     self.assertEqual(game.score(), (2, 0))
コード例 #24
0
 def test_side_02_empty(self):
     g = Game()
     g._board = [1, 0, 0, 0, 0, 7, 20, 0, 0, 0, 0, 0, 3, 10]
     g._player_one = False
     g.move(12)
     self.assertEqual(g._board,
                      [0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 11])
     self.assertEqual(g.score(), (30, 11))
     self.assertTrue(g.over())
コード例 #25
0
 def test_move_11(self):
     g = Game()
     g.move(0)
     g.move(11)
     self.assertEqual(g._board, [1, 6, 5, 5, 5, 4, 0, 4, 4, 4, 4, 0, 5, 1])
     self.assertEqual(g.score(), (0, 1))
     self.assertEqual(g.turn_player(), 1)
     self.assertEqual(g.history(),
                      [[4, 4, 4, 4, 4, 4, 0, 4, 4, 4, 4, 4, 4, 0],
                       [0, 5, 5, 5, 5, 4, 0, 4, 4, 4, 4, 4, 4, 0]])
コード例 #26
0
    def test_random_move_02(self):
        """Test multiple moves"""
        game = Game()
        agent = AgentRandom(454)
        move = agent.move(game)
        self.assertEqual(move, 5)
        game.move(move)

        move = agent.move(game)
        self.assertEqual(move, 12)
コード例 #27
0
ファイル: test_agent_exact.py プロジェクト: zakizadeh/mancala
 def test_double_exact(self):
     """If more than one exact, choose closest to score first"""
     game = Game([6, 5, 4, 3, 2, 1, 0, 1, 1, 1, 1, 1, 1, 1])
     move = AgentExact().move(game)
     self.assertEqual(move, 5)
     game.move(move)
     move = AgentExact().move(game)
     self.assertEqual(move, 4)
     game.move(move)
     move = AgentExact().move(game)
     self.assertEqual(move, 5)
コード例 #28
0
ファイル: test_game.py プロジェクト: Leonie-/mancala-python
    def test_player_one_takes_a_turn(self):
        current_player = 1
        mock_mancala_board = mock.Mock()
        mock_player_one = mock.Mock()
        mock_player_two = mock.Mock()
        mock_mancala_board.game_over.return_value = True
        mock_player_one.play.return_value = False

        game = Game(mock_mancala_board, mock_player_one, mock_player_two)
        game.play(current_player)
        assert mock_player_one.play.call_count == 1
コード例 #29
0
ファイル: server.py プロジェクト: zakizadeh/mancala
def board_str_to_game(board, player_turn):
    """Turns parameters into game or error tuple"""
    board_arr = split_string(board, 2)

    if len(board_arr) != 14:
        return jsonify({"error": "Invalid Board"}), 400

    if player_turn != 1 and player_turn != 2:
        return jsonify({"error": "Invalid Player"}), 400

    game = Game(board_arr, player_turn)
    return game
コード例 #30
0
ファイル: test_game.py プロジェクト: Leonie-/mancala-python
    def test_player_one_takes_an_extra_turn(self):
        current_player = 1
        mock_mancala_board = mock.Mock()
        mock_player_one = mock.Mock()
        mock_player_two = mock.Mock()
        mock_mancala_board.game_over.side_effect = [False, True]
        mock_player_one.play.side_effect = [True, False]

        game = Game(mock_mancala_board, mock_player_one, mock_player_two)
        game.play(current_player)

        assert mock_player_one.play.call_count == 2