def test010(self): G = nx.Graph() A = (0, 0, 0) B = (0, 1, 0) C = (0, 2, 0) D = (0, 3, 0) E = (0, 4, 0) G.add_edges_from([(A, B), (B, C), (C, D), (D, E)]) current = dfs_preorder_nodes(G, D, set([A, B, C]), lambda a, b: True) target = ([D, E], []) self.assertEqual(target, current)
def test032(self): G = nx.Graph() A = (0, 0, 0) B = (0, 1, 1) C = (0, 2, 4) D = (0, 3, 5) E = (0, 4, 8) G.add_edges_from([(A, B), (B, C), (C, D), (D, E)]) current = dfs_preorder_nodes(G, C, set([A, B]), lambda p, c: c[2] - p[2] <= 1) target = ([C, D, ], [(D, E)]) self.assertEqual(target, current)
def test020(self): G = nx.Graph() A = (0, 0, 0) B = (0, 1, 0) C = (0, 2, 0) D = (0, 3, 1) E = (0, 4, 1) G.add_edges_from([(A, B), (B, C), (C, D), (D, E)]) current = dfs_preorder_nodes(G, A, set(), lambda a, b: b[2] <= 0) target = ([A, B, C, ], [(C, D)]) self.assertEqual(target, current)
def test100(self): """ A--B | C--D | E """ G = nx.Graph() A = (0, 0, 0) B = (0, 1, 1) C = (1, 0, 2) D = (1, 1, 3) E = (2, 0, 4) G.add_edges_from([(A, B), (A, C), (C, D), (C, E)]) current = dfs_preorder_nodes(G, A, set(), lambda p, c: c[2] - p[2] <= 1) target = ([A, B, ], [(A, C)]) self.assertEqual(target, current) current = dfs_preorder_nodes(G, C, set([A, B]), lambda p, c: c[2] - p[2] <= 1) target = ([C, D, ], [(C, E)]) self.assertEqual(target, current)
def test200(self): """A-AB1-AB2-AB3-AB4-B """ G = nx.Graph() A = ("A", 10) AB1 = ("AB1", 10.01) AB2 = ("AB2", 09.90) AB3 = ("AB3", 10.00) AB4 = ("AB4", 10.05) B = ("B", 10.1) G.add_edges_from( [(A, AB1), (AB1, AB2), (AB2, AB3), (AB3, AB4), (AB4, B)]) current = dfs_preorder_nodes(G, A, set(), lambda p, c: c[1] >= p[1]) target = ([A, AB1, ], [(AB1, AB2)]) self.assertEqual(target, current)
def test120(self): """ A--B | | D--C--E can't reach neither D nor E. D can't be reached from A and C """ G = nx.Graph() A = ("A", 0) B = ("B", 1) C = ("C", 2) D = ("D", 8) E = ("E", 4) G.add_edges_from([(A, B), (A, D), (C, D), (B, C), (C, E)]) current = dfs_preorder_nodes(G, A, set(), lambda p, c: c[1] - p[1] <= 1) target = ([A, B, C], [(A, D), (C, D), (C, E)]) self.assertEqual(target, current)
def test110(self): """ A--B | | D--C--E can't reach E. D is first seen as unreachable from A, then is reached from C. """ G = nx.Graph() A = ("A", 0) B = ("B", 1) C = ("C", 2) D = ("D", 3) E = ("E", 4) G.add_edges_from([(A, B), (A, D), (C, D), (B, C), (C, E)]) current = dfs_preorder_nodes(G, A, set(), lambda p, c: c[1] - p[1] <= 1) target = ([A, B, C, D], [(C, E)]) self.assertEqual(target, current)