def test_minerals_walls() -> None:
    # attempting to path through mineral walls in goldenwall should fail
    path = os.path.join(get_map_files_folder(), 'GoldenWallLE.xz')
    # logger.info(path)
    map_data = mock_map_data(path)
    start = (110, 95)
    goal = (110, 40)
    grid = map_data.get_pyastar_grid()
    path = map_data.pathfind(start=start, goal=goal, grid=grid)
    assert (path is None)
    # also test climber grid for nonpathables
    grid = map_data.get_climber_grid()
    path = map_data.pathfind(start=start, goal=goal, grid=grid)
    assert (path is None)

    # remove the mineral wall that is blocking pathing from the left player's base to the bottom
    # side of the map
    map_data.bot.destructables = map_data.bot.destructables.filter(
        lambda x: x.distance_to((46, 41)) > 5)
    grid = map_data.get_pyastar_grid()
    path = map_data.pathfind(start=start, goal=goal, grid=grid)
    assert (path is not None)

    # attempting to path through tight pathways near destructables should work
    path = os.path.join(get_map_files_folder(), 'AbyssalReefLE.xz')
    map_data = mock_map_data(path)
    start = (130, 25)
    goal = (125, 47)
    grid = map_data.get_pyastar_grid()
    path = map_data.pathfind(start=start, goal=goal, grid=grid)
    assert (path is not None)
def test_minerals_walls() -> None:
    # attempting to path through mineral walls in goldenwall should fail
    import pathlib
    li = sorted(pathlib.Path('..').glob('**/*GoldenWallLE.xz'))
    # path = os.path.join(get_map_files_folder(), 'GoldenWallLE.xz')
    path = li[0].absolute()
    # logger.info(path)
    map_data = mock_map_data(path)
    start = (110, 95)
    goal = (110, 40)
    grid = map_data.get_pyastar_grid()
    path = map_data.pathfind(start=start, goal=goal, grid=grid)
    assert (path is None)
    # also test climber grid for nonpathables
    grid = map_data.get_climber_grid()
    path = map_data.pathfind(start=start, goal=goal, grid=grid)
    assert (path is None)

    # attempting to path through tight pathways near destructables should work
    path = os.path.join(get_map_files_folder(), 'AbyssalReefLE.xz')
    map_data = mock_map_data(path)
    start = (130, 25)
    goal = (125, 47)
    grid = map_data.get_pyastar_grid()
    path = map_data.pathfind(start=start, goal=goal, grid=grid)
    assert (path is not None)
def test_climber_grid() -> None:
    """assert that we can path through climb cells with climber grid,
    but not with normal grid"""
    path = os.path.join(get_map_files_folder(), 'GoldenWallLE.xz')

    map_data = mock_map_data(path)
    start = (150, 95)
    goal = (110, 40)
    grid = map_data.get_pyastar_grid()
    path = map_data.pathfind(start=start, goal=goal, grid=grid)
    assert (path is None)
    grid = map_data.get_climber_grid()
    path = map_data.pathfind(start=start, goal=goal, grid=grid)
    assert (path is None)
Example #4
0
from .mocksetup import *
from MapAnalyzer.utils import get_map_files_folder
from MapAnalyzer.settings import ROOT_DIR
import doctest

goldenwall = os.path.join(get_map_files_folder(), 'GoldenWallLE.xz')
map_data = mock_map_data(goldenwall)
"""
uncomment and run the function below to test doc strings without running the entire test suite 
"""

# def test_docstrings() -> None:
#     test_files = []
#     for root, dirs, files in os.walk(ROOT_DIR):
#         for f in files:
#             if f.endswith('.py'):
#                 test_files.append(os.path.join(root, f))
#     for f in test_files:
#         print(f)
#         doctest.testfile(f"{f}", extraglobs={'self': map_data}, verbose=True)