Пример #1
0
    def test_concentric_walk_NodeD(self) -> None:
        g = Graph.from_hops(Hops.from_pairs_symmetric(
            ('O', 'A'), ('O', 'B'),     # A, B: distance 1 from O
            ('A', 'B'),                 # don't get confused by this
            ('A', 'AA'), ('A', 'AB'),   # AA, AB: distance 2
            ('B', 'BA'), ('B', 'BB'),   # BA, BB: distance 2
            ('A', 'BB'),                # don't get confused by this
            ('BB', 'BBA')               # BBA: distance 3
        ))

        conc = list(g.concentric_walk_NodeD('O'))
        #pts(conc)
        self.assertEqual(conc[0], NodeD('O', 0))
        self.assertCountEqual(conc[1:3], {NodeD('A', 1), NodeD('B', 1)})
        self.assertCountEqual(
            conc[3:7],
            {NodeD('AA', 2), NodeD('AB', 2), NodeD('BA', 2), NodeD('BB', 2)}
        )
        self.assertEqual(conc[-1], NodeD('BBA', 3))
        self.assertEqual(len(conc), len(g))

        conc = list(g.concentric_walk_NodeD('O', dlimit=1))
        self.assertCountEqual(
            conc,
            {NodeD('O', 0), NodeD('A', 1), NodeD('B', 1)}
        )
Пример #2
0
    def test_concentric_walk(self) -> None:
        g = Graph.from_hops(Hops.from_pairs_symmetric(
            ('O', 'A'), ('O', 'B'),     # A, B: distance 1 from O
            ('A', 'B'),                 # don't get confused by this
            ('A', 'AA'), ('A', 'AB'),   # AA, AB: distance 2
            ('B', 'BA'), ('B', 'BB'),   # BA, BB: distance 2
            ('A', 'BB'),                # don't get confused by this
            ('BB', 'BBA')               # BBA: distance 3
        ))

        self.assertCountEqual(g.concentric_walk('O', -1), empty_set)
        self.assertCountEqual(g.concentric_walk('O', 0), {'O'})
        self.assertCountEqual(g.concentric_walk('O', 1), {'O', 'A', 'B'})
        self.assertCountEqual(
            g.concentric_walk('O', 2),
            {'O', 'A', 'B', 'AA', 'AB', 'BA', 'BB'}
        )
        self.assertCountEqual(g.concentric_walk('BBA', 1), {'BBA', 'BB'})