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]))