41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
|
#!/usr/bin/env python
|
||
|
"""
|
||
|
ego graph
|
||
|
---------
|
||
|
"""
|
||
|
|
||
|
import networkx as nx
|
||
|
from networkx.testing.utils import *
|
||
|
|
||
|
|
||
|
class TestGeneratorEgo():
|
||
|
def test_ego(self):
|
||
|
G = nx.star_graph(3)
|
||
|
H = nx.ego_graph(G, 0)
|
||
|
assert nx.is_isomorphic(G, H)
|
||
|
G.add_edge(1, 11)
|
||
|
G.add_edge(2, 22)
|
||
|
G.add_edge(3, 33)
|
||
|
H = nx.ego_graph(G, 0)
|
||
|
assert nx.is_isomorphic(nx.star_graph(3), H)
|
||
|
G = nx.path_graph(3)
|
||
|
H = nx.ego_graph(G, 0)
|
||
|
assert_edges_equal(H.edges(), [(0, 1)])
|
||
|
H = nx.ego_graph(G, 0, undirected=True)
|
||
|
assert_edges_equal(H.edges(), [(0, 1)])
|
||
|
H = nx.ego_graph(G, 0, center=False)
|
||
|
assert_edges_equal(H.edges(), [])
|
||
|
|
||
|
def test_ego_distance(self):
|
||
|
G = nx.Graph()
|
||
|
G.add_edge(0, 1, weight=2, distance=1)
|
||
|
G.add_edge(1, 2, weight=2, distance=2)
|
||
|
G.add_edge(2, 3, weight=2, distance=1)
|
||
|
assert_nodes_equal(nx.ego_graph(G, 0, radius=3).nodes(), [0, 1, 2, 3])
|
||
|
eg = nx.ego_graph(G, 0, radius=3, distance='weight')
|
||
|
assert_nodes_equal(eg.nodes(), [0, 1])
|
||
|
eg = nx.ego_graph(G, 0, radius=3, distance='weight', undirected=True)
|
||
|
assert_nodes_equal(eg.nodes(), [0, 1])
|
||
|
eg = nx.ego_graph(G, 0, radius=3, distance='distance')
|
||
|
assert_nodes_equal(eg.nodes(), [0, 1, 2])
|