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