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