diff --git a/src/amaz_lib/MazeGenerator.py b/src/amaz_lib/MazeGenerator.py index 0d4e102..0e23d75 100644 --- a/src/amaz_lib/MazeGenerator.py +++ b/src/amaz_lib/MazeGenerator.py @@ -129,19 +129,19 @@ class DepthFirstSearch: x, y = coord width, height = w_h # NORTH - if y - 1 >= 0 and coord not in visited: + if y - 1 >= 0 and (x, y - 1) not in visited: rand_cell.append("N") # SOUTH - if y + 1 < height and coord not in visited: + if y + 1 < height and (x, y + 1) not in visited: rand_cell.append("S") # WEST - if x - 1 >= 0 and coord not in visited: + if x - 1 >= 0 and (x - 1, y) not in visited: rand_cell.append("W") # EAST - if x + 1 < width and coord not in visited: + if x + 1 < width and (x + 1, y) not in visited: rand_cell.append("E") return rand_cell @@ -183,7 +183,7 @@ class DepthFirstSearch: @staticmethod def last(path: list): - return path(len(path) - 1) + return path[len(path) - 1] def back_on_step(path: list, w_h: tuple) -> list: last = DepthFirstSearch.last(path) diff --git a/tests/test_Depth.py b/tests/test_Depth.py index c7e6eed..8933db8 100644 --- a/tests/test_Depth.py +++ b/tests/test_Depth.py @@ -11,7 +11,23 @@ class TestDepth: assert maze[0][0].value == cell.value def test_rand_cells(self) -> None: - maze = DepthFirstSearch.init_maze(10, 10) - lst = DepthFirstSearch.add_cell_visited(maze[0][0]) - rand_cells = DepthFirstSearch.random_cells(lst, maze, 0, 1) + w_h = (10, 10) + lst = DepthFirstSearch.add_cell_visited((0, 0)) + rand_cells = DepthFirstSearch.random_cells(lst, (0, 1), w_h) assert len(rand_cells) == 2 + + def test_next_cell(self) -> None: + coord = (5, 4) + x, y = coord + assert DepthFirstSearch.next_cell(x, y, "N") == (5, 3) + + def test_reverse_path(self) -> None: + assert DepthFirstSearch.reverse_path("N") == "S" + + def test_last(self) -> None: + lst = [(0, 0), (1, 1)] + assert DepthFirstSearch.last(lst) == (1, 1) + + def test_BOS(self) -> None: + path = [(0, 0), (0, 2), (1, 1)] + assert len(DepthFirstSearch.random_cells(path, (0, 1), (10, 10))) == 0