Пример #1
0
    def test_subgraph(self):

        graph = {1: [2], 2: [1, 3], 4: [5]}
        visited = set([1, 2, 3])
        self.assertEqual(visited, graphs.dfs_connected(graph, 1))

        graph = {2: [1], 3: [2], 1: [3]}
        visited = set([1, 2, 3])
        self.assertEqual(visited, graphs.dfs_connected(graph, 2))

        graph = {1: [2, 3], 3: [4], 4: [1], 5: [6]}
        visited = set([1, 2, 3, 4])
        self.assertEqual(visited, graphs.dfs_connected(graph, 3))
Пример #2
0
    def propagate_static(self, moves, static):

        visited = set()
        for move in moves:
            if move in static and move not in visited:
                visited |= graphs.dfs_connected(moves, move)

        return visited