test_ego.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. """
  2. ego graph
  3. ---------
  4. """
  5. import networkx as nx
  6. from networkx.utils import edges_equal, nodes_equal
  7. class TestGeneratorEgo:
  8. def test_ego(self):
  9. G = nx.star_graph(3)
  10. H = nx.ego_graph(G, 0)
  11. assert nx.is_isomorphic(G, H)
  12. G.add_edge(1, 11)
  13. G.add_edge(2, 22)
  14. G.add_edge(3, 33)
  15. H = nx.ego_graph(G, 0)
  16. assert nx.is_isomorphic(nx.star_graph(3), H)
  17. G = nx.path_graph(3)
  18. H = nx.ego_graph(G, 0)
  19. assert edges_equal(H.edges(), [(0, 1)])
  20. H = nx.ego_graph(G, 0, undirected=True)
  21. assert edges_equal(H.edges(), [(0, 1)])
  22. H = nx.ego_graph(G, 0, center=False)
  23. assert edges_equal(H.edges(), [])
  24. def test_ego_distance(self):
  25. G = nx.Graph()
  26. G.add_edge(0, 1, weight=2, distance=1)
  27. G.add_edge(1, 2, weight=2, distance=2)
  28. G.add_edge(2, 3, weight=2, distance=1)
  29. assert nodes_equal(nx.ego_graph(G, 0, radius=3).nodes(), [0, 1, 2, 3])
  30. eg = nx.ego_graph(G, 0, radius=3, distance="weight")
  31. assert nodes_equal(eg.nodes(), [0, 1])
  32. eg = nx.ego_graph(G, 0, radius=3, distance="weight", undirected=True)
  33. assert nodes_equal(eg.nodes(), [0, 1])
  34. eg = nx.ego_graph(G, 0, radius=3, distance="distance")
  35. assert nodes_equal(eg.nodes(), [0, 1, 2])