Exemplo n.º 1
0
 def test_load_map(self):
     cave_map = load_map(get_test_file_path("samples/d12/small_map.txt"))
     self.assertEqual(len(cave_map), 6)
     self.assertListEqual(cave_map["start"], ["A", "b"])
     self.assertListEqual(cave_map["A"], ["start", "c", "b", "end"])
     self.assertListEqual(cave_map["b"], ["start", "A", "d", "end"])
     self.assertListEqual(cave_map["c"], ["A"])
     self.assertListEqual(cave_map["d"], ["b"])
     self.assertListEqual(cave_map["end"], ["A", "b"])
Exemplo n.º 2
0
 def test_get_path_options_simple(self):
     cave_map = load_map(get_test_file_path("samples/d12/small_map.txt"))
     self.assertListEqual(get_path_options(cave_map, ["start", "b"]),
                          ["A", "d", "end"])
     self.assertListEqual(get_path_options(cave_map, ["start", "A"]),
                          ["c", "b", "end"])
     self.assertListEqual(get_path_options(cave_map, ["start", "b"], 2),
                          ["A", "d", "end"])
     self.assertListEqual(get_path_options(cave_map, ["start", "A"], 2),
                          ["c", "b", "end"])
Exemplo n.º 3
0
    def test_get_path_options_revisit_small_once(self):
        cave_map = load_map(get_test_file_path("samples/d12/small_map.txt"))
        # No change to rules on revisiting large caves
        self.assertListEqual(
            get_path_options(cave_map, ["start", "A", "b"], 2),
            ["A", "d", "end"])

        # May revisit a singel small cave
        self.assertListEqual(
            get_path_options(cave_map, ["start", "b", "A"], 2),
            ["c", "b", "end"])

        # But may not re-visit for a third time
        self.assertListEqual(
            get_path_options(cave_map, ["start", "b", "A", "b", "A"], 2),
            ["c", "end"])
Exemplo n.º 4
0
 def test_get_small_paths(self):
     cave_map = load_map(get_test_file_path("samples/d12/small_map.txt"))
     paths = get_paths(cave_map)
     self.assertEqual(len(paths), 10)
Exemplo n.º 5
0
 def test_get_path_options_revisit_single_small_once(self):
     cave_map = load_map(get_test_file_path("samples/d12/small_map.txt"))
     # May only visit *one* small cave twice
     self.assertListEqual(
         get_path_options(cave_map, ["start", "b", "A", "b", "A", "c", "A"],
                          2), ["end"])
Exemplo n.º 6
0
 def test_get_large_double_paths(self):
     cave_map = load_map(get_test_file_path("samples/d12/large.txt"))
     paths = get_paths(cave_map, small_limit=2)
     self.assertEqual(len(paths), 3509)
Exemplo n.º 7
0
 def test_get_large_paths(self):
     cave_map = load_map(get_test_file_path("samples/d12/large.txt"))
     paths = get_paths(cave_map)
     self.assertEqual(len(paths), 226)
Exemplo n.º 8
0
 def test_get_medium_double_paths(self):
     cave_map = load_map(get_test_file_path("samples/d12/medium_map.txt"))
     paths = get_paths(cave_map, small_limit=2)
     self.assertEqual(len(paths), 103)