Пример #1
0
 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)
Пример #2
0
 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)
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
 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)
Пример #6
0
    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)
Пример #7
0
    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)