def test_northpolemap_str1(self): np_map = day20.NorthPoleMap(r'^ENWWW(NEEE|SSE(EE|N))$') # Add | doors. np_map._add_door(Coord(-2, +2), Coord(-1, +2)) np_map._add_door(Coord(-1, +2), Coord(+0, +2)) np_map._add_door(Coord(+0, +2), Coord(+1, +2)) np_map._add_door(Coord(-2, +1), Coord(-1, +1)) np_map._add_door(Coord(-1, +1), Coord(-0, +1)) np_map._add_door(Coord(+0, +1), Coord(+1, +1)) np_map._add_door(Coord(+0, +0), Coord(+1, +0)) np_map._add_door(Coord(-2, -1), Coord(-1, -1)) np_map._add_door(Coord(-1, -1), Coord(+0, -1)) np_map._add_door(Coord(+0, -1), Coord(+1, -1)) # Add - doors. np_map._add_door(Coord(-2, +2), Coord(-2, +1)) np_map._add_door(Coord(-2, +1), Coord(-2, +0)) np_map._add_door(Coord(+1, +1), Coord(+1, +0)) np_map._add_door(Coord(-2, +0), Coord(-2, -1)) np_map._add_door(Coord(-1, +0), Coord(-1, -1)) self.assertEqual('\n'.join(self.example_map2), str(np_map))
def test_strip_detours(self): example_route = r'^ENNWSWW(NEWS|)SSSEEN(WNSENS|)EE(SWEN|)NNN$' np_map = day20.NorthPoleMap(example_route) route_without_detours, longest_detour = np_map._remove_detours_from_regex(example_route) self.assertEqual('^ENNWSWWSSSEENEENNN$', route_without_detours) self.assertEqual(6, longest_detour)
def test_part1_example5(self): np_map = day20.NorthPoleMap(self.example_regex5) np_map.generate_map() self.assertEqual(31, np_map.find_furthest_room()[0])
def test_generate_map5(self): np_map = day20.NorthPoleMap(self.example_regex5) np_map.generate_map() self.assertEqual('\n'.join(self.example_map5), str(np_map))