def test_get_all_paths_from_single_node(self): input_string = """A to B = 3 A to C = 2 A to B = 3 B to C = 5 B to D = 4 C to D = 3""" graph = day9.map_distances(input_string) expected_paths = [['C', 'A', 'B'], ['C', 'B'], ['C', 'D', 'B']] self.assertEqual(expected_paths, day9.get_all_paths_from_a_to_b('C', 'B', graph))
def test_get_all_paths_through_multiple_nodes(self): input_string = """A to B = 3 A to C = 2 A to B = 3 B to C = 5 B to D = 4 C to D = 3""" graph = day9.map_distances(input_string) expected_paths = [['A', 'B', 'C', 'D'], ['A', 'C', 'B', 'D'], ['A', 'B', 'D'], ['A', 'C', 'D']] results = day9.get_all_paths_from_a_to_b('A', 'D', graph) self.assertTrue(all([expect in results for expect in expected_paths])) self.assertTrue(all([result in expected_paths for result in results]))