Source code for day23.tests.test_classes2

"""Test day23 part 2."""
from typing import TYPE_CHECKING

from day23.day23 import INPUT_SMALL
from day23.lib.classes import Position
from day23.lib.classes2 import Node, Solver2
from day23.lib.parsers import get_maze

if TYPE_CHECKING:
    from day23.lib.classes import Maze


[docs] def test_solver2() -> None: """Test ``Solver2`` class.""" maze: Maze = get_maze(INPUT_SMALL) # get_nodes nodes: dict[Position, Node] = Solver2.get_nodes(maze.copy()) assert len(nodes) == 9 # calculate_edges start_pos = Position(0, 1) Solver2.calculate_edges(nodes[start_pos], nodes, maze.copy()) assert len(nodes[start_pos].edges) == 1 assert nodes[start_pos].edges[0].length == 15 # build_nodes solver = Solver2(maze) nodes_list: list[Node] = solver.build_nodes() print(nodes_list) assert len(nodes_list[0].edges) == 1 assert nodes_list[0].edges[0].length == 15 assert solver.solve() == 154