Beispiel #1
0
    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))
Beispiel #2
0
 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)
Beispiel #3
0
 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])
Beispiel #4
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))