def test_become_king(self, empty_board): # Dark piece empty_board.board_list[1][6] = LightPiece( ) # auxiliary piece, single type piece cannot move empty_board.board_list[5][5] = DarkPiece() empty_board.move(Constants().DARK, 5, 5, 6, 6) assert empty_board.board_list[6][6].king is False empty_board.move(Constants().DARK, 6, 6, 7, 7) assert empty_board.board_list[7][7].king is True # Light piece empty_board.board_list[1][6] = DarkPiece( ) # auxiliary piece, single type piece cannot move empty_board.board_list[2][2] = LightPiece() empty_board.move(Constants().LIGHT, 2, 2, 1, 1) assert empty_board.board_list[1][1].king is False empty_board.move(Constants().LIGHT, 1, 1, 0, 0) assert empty_board.board_list[0][0].king is True
def test_jump_dark_forward(self, empty_board, dark): empty_board.board_list[3][3] = DarkPiece() light = LightPiece() empty_board.board_list[4][4] = light obs, rew, done, info = empty_board.move(dark, 3, 3, 5, 5) assert info["removed"] == ((4, 4), light) assert info["moved"] == ((3, 3), (5, 5)) assert empty_board.board_list[4][4] is None assert done
def test_jump_light_forward(self, empty_board, light): dark = DarkPiece() empty_board.board_list[3][3] = dark empty_board.board_list[4][4] = LightPiece() obs, rew, done, info = empty_board.move(light, 4, 4, 2, 2) assert info["removed"] == ((3, 3), dark) assert info["moved"] == ((4, 4), (2, 2)) assert empty_board.board_list[3][3] is None assert done
def test_no_possible_jump(self, empty_board, light): """ X - - X - - - - - -> - O - O - 0 - - 0 """ empty_board.board_list[0][0] = DarkPiece() empty_board.board_list[2][2] = LightPiece() empty_board.board_list[2][0] = LightPiece() obs, rew, done, info = empty_board.move(light, 2, 0, 1, 1) assert done
def test_move(self, empty_board): # Dark piece empty_board.board_list[5][5] = DarkPiece() with pytest.raises(ValueError): empty_board.move(Constants().DARK, 5, 5, 4, 4) # move any direction empty_board.board_list[5][5].make_king() empty_board.move(Constants().DARK, 5, 5, 4, 4) empty_board.move(Constants().DARK, 4, 4, 5, 5) # Light Piece empty_board.board_list[5][5] = LightPiece() with pytest.raises(ValueError): empty_board.move(Constants().LIGHT, 5, 5, 6, 6) # move any direction empty_board.board_list[5][5].make_king() empty_board.move(Constants().LIGHT, 5, 5, 6, 6) empty_board.move(Constants().LIGHT, 6, 6, 5, 5)
def test_move(self, empty_board): # Dark piece init_board = empty_board empty_board.board_list[5][5] = DarkPiece() empty_board.move(Constants().DARK, 5, 5, 4, 4) assert init_board == empty_board # move any direction empty_board.board_list[5][5].make_king() empty_board.move(Constants().DARK, 5, 5, 4, 4) empty_board.move(Constants().DARK, 4, 4, 5, 5) # Light Piece init_board = empty_board empty_board.board_list[5][5] = LightPiece() empty_board.move(Constants().LIGHT, 5, 5, 6, 6) assert init_board == empty_board # move any direction empty_board.board_list[5][5].make_king() empty_board.move(Constants().LIGHT, 5, 5, 6, 6) empty_board.move(Constants().LIGHT, 6, 6, 5, 5)
def test_no_piece(self, empty_board, dark): empty_board.board_list[0][0] = DarkPiece() obs, rew, done, info = empty_board.move(dark, 0, 0, 1, 1) assert done