summaryrefslogtreecommitdiff
path: root/networkx/algorithms/components
diff options
context:
space:
mode:
authorJordi Torrents <jordi.t21@gmail.com>2015-05-07 05:27:02 +0200
committerJordi Torrents <jordi.t21@gmail.com>2015-05-07 05:27:02 +0200
commita2a3e84be346235ddbada86c8f2e1992be40fa12 (patch)
treed529e020b6330e5727705f49a567c3ff911cdddf /networkx/algorithms/components
parent4ad938c784c5c6c08fbd2f6d760e6cfad3a80b83 (diff)
downloadnetworkx-a2a3e84be346235ddbada86c8f2e1992be40fa12.tar.gz
Add tests for subgraphs without copy for [bi]components.
This brings coverage to 100% in all modules of the components package.
Diffstat (limited to 'networkx/algorithms/components')
-rw-r--r--networkx/algorithms/components/tests/test_biconnected.py15
-rw-r--r--networkx/algorithms/components/tests/test_connected.py106
2 files changed, 78 insertions, 43 deletions
diff --git a/networkx/algorithms/components/tests/test_biconnected.py b/networkx/algorithms/components/tests/test_biconnected.py
index b1b23ebe..ede2d12a 100644
--- a/networkx/algorithms/components/tests/test_biconnected.py
+++ b/networkx/algorithms/components/tests/test_biconnected.py
@@ -87,6 +87,21 @@ def test_biconnected_component_subgraphs_cycle():
assert_equal(g1[1][3]['eattr'],'blue')
assert_equal(G[1][3]['eattr'],'red')
+def test_biconnected_component_subgraphs_no_copy():
+ G = nx.Graph()
+ G.add_edge(1, 2, eattr='red') # test attributes copied to subgraphs
+ G.node[1]['nattr'] = 'blue'
+ G.graph['gattr'] = 'green'
+ ccs = list(nx.biconnected_component_subgraphs(G, copy=False))
+ assert_equal(len(ccs), 1)
+ sg = ccs[0]
+ assert_equal(sg[1][2]['eattr'], 'red')
+ assert_equal(sg.node[1]['nattr'], 'blue')
+ assert_equal(sg.graph['gattr'], 'green')
+ sg[1][2]['eattr'] = 'blue'
+ assert_equal(G[1][2]['eattr'], 'blue')
+ assert_equal(sg[1][2]['eattr'], 'blue')
+
def test_biconnected_components1():
# graph example from
diff --git a/networkx/algorithms/components/tests/test_connected.py b/networkx/algorithms/components/tests/test_connected.py
index 72897f76..24eeabcb 100644
--- a/networkx/algorithms/components/tests/test_connected.py
+++ b/networkx/algorithms/components/tests/test_connected.py
@@ -7,66 +7,86 @@ from networkx import NetworkXError,NetworkXNotImplemented
class TestConnected:
def setUp(self):
- G1=cnlti(nx.grid_2d_graph(2,2),first_label=0,ordering="sorted")
- G2=cnlti(nx.lollipop_graph(3,3),first_label=4,ordering="sorted")
- G3=cnlti(nx.house_graph(),first_label=10,ordering="sorted")
- self.G=nx.union(G1,G2)
- self.G=nx.union(self.G,G3)
- self.DG=nx.DiGraph([(1,2),(1,3),(2,3)])
- self.grid=cnlti(nx.grid_2d_graph(4,4),first_label=1)
+ G1 = cnlti(nx.grid_2d_graph(2, 2), first_label=0, ordering="sorted")
+ G2 = cnlti(nx.lollipop_graph(3, 3), first_label=4, ordering="sorted")
+ G3 = cnlti(nx.house_graph(), first_label=10, ordering="sorted")
+ self.G = nx.union(G1, G2)
+ self.G = nx.union(self.G, G3)
+ self.DG = nx.DiGraph([(1, 2), (1, 3), (2, 3)])
+ self.grid = cnlti(nx.grid_2d_graph(4, 4), first_label=1)
def test_connected_components(self):
- cc=nx.connected_components
- G=self.G
- C=[[0, 1, 2, 3], [4, 5, 6, 7, 8, 9], [10, 11, 12, 13, 14]]
- assert_equal(sorted([sorted(g) for g in cc(G)]),sorted(C))
+ cc = nx.connected_components
+ G = self.G
+ C = {
+ frozenset([0, 1, 2, 3]),
+ frozenset([4, 5, 6, 7, 8, 9]),
+ frozenset([10, 11, 12, 13, 14])
+ }
+ assert_equal({frozenset(g) for g in cc(G)}, C)
def test_number_connected_components(self):
- ncc=nx.number_connected_components
- assert_equal(ncc(self.G),3)
+ ncc = nx.number_connected_components
+ assert_equal(ncc(self.G), 3)
def test_number_connected_components2(self):
- ncc=nx.number_connected_components
- assert_equal(ncc(self.grid),1)
+ ncc = nx.number_connected_components
+ assert_equal(ncc(self.grid), 1)
def test_connected_components2(self):
- cc=nx.connected_components
- G=self.grid
- C=[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]]
- assert_equal(sorted([sorted(g) for g in cc(G)]),sorted(C))
+ cc = nx.connected_components
+ G = self.grid
+ C = {frozenset([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16])}
+ assert_equal({frozenset(g) for g in cc(G)}, C)
def test_node_connected_components(self):
- ncc=nx.node_connected_component
- G=self.grid
- C=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
- assert_equal(sorted(ncc(G,1)),sorted(C))
+ ncc = nx.node_connected_component
+ G = self.grid
+ C = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}
+ assert_equal(ncc(G, 1), C)
def test_connected_component_subgraphs(self):
G=self.grid
- G.add_edge(1,2,eattr='red') # test attributes copied to subgraphs
- G.node[1]['nattr']='blue'
- G.graph['gattr']='green'
- ccs=list(nx.connected_component_subgraphs(G))
- assert_equal(len(ccs),1)
- sg=ccs[0]
- assert_equal(sorted(sg.nodes()),list(range(1,17)))
- assert_equal(sg[1][2]['eattr'],'red')
- assert_equal(sg.node[1]['nattr'],'blue')
- assert_equal(sg.graph['gattr'],'green')
- sg[1][2]['eattr']='blue'
- assert_equal(G[1][2]['eattr'],'red')
- assert_equal(sg[1][2]['eattr'],'blue')
+ G.add_edge(1, 2, eattr='red') # test attributes copied to subgraphs
+ G.node[1]['nattr'] = 'blue'
+ G.graph['gattr'] = 'green'
+ ccs = list(nx.connected_component_subgraphs(G))
+ assert_equal(len(ccs), 1)
+ sg = ccs[0]
+ assert_equal(sorted(sg), list(range(1,17)))
+ assert_equal(sg[1][2]['eattr'], 'red')
+ assert_equal(sg.node[1]['nattr'], 'blue')
+ assert_equal(sg.graph['gattr'], 'green')
+ sg[1][2]['eattr'] = 'blue'
+ assert_equal(G[1][2]['eattr'], 'red')
+ assert_equal(sg[1][2]['eattr'], 'blue')
+ def test_connected_component_subgraphs_no_copy(self):
+ G=self.grid
+ G.add_edge(1, 2, eattr='red') # test attributes copied to subgraphs
+ G.node[1]['nattr'] = 'blue'
+ G.graph['gattr'] = 'green'
+ ccs = list(nx.connected_component_subgraphs(G, copy=False))
+ assert_equal(len(ccs), 1)
+ sg = ccs[0]
+ assert_equal(sorted(sg), list(range(1,17)))
+ assert_equal(sg[1][2]['eattr'], 'red')
+ assert_equal(sg.node[1]['nattr'], 'blue')
+ assert_equal(sg.graph['gattr'], 'green')
+ sg[1][2]['eattr'] = 'blue'
+ assert_equal(G[1][2]['eattr'], 'blue')
+ assert_equal(sg[1][2]['eattr'], 'blue')
def test_is_connected(self):
assert_true(nx.is_connected(self.grid))
- G=nx.Graph()
- G.add_nodes_from([1,2])
+ G = nx.Graph()
+ G.add_nodes_from([1, 2])
assert_false(nx.is_connected(G))
def test_connected_raise(self):
- assert_raises(NetworkXNotImplemented,nx.connected_components,self.DG)
- assert_raises(NetworkXNotImplemented,nx.number_connected_components,self.DG)
- assert_raises(NetworkXNotImplemented,nx.connected_component_subgraphs,self.DG)
- assert_raises(NetworkXNotImplemented,nx.node_connected_component,self.DG,1)
- assert_raises(NetworkXNotImplemented,nx.is_connected,self.DG)
+ assert_raises(NetworkXNotImplemented, nx.connected_components, self.DG)
+ assert_raises(NetworkXNotImplemented, nx.number_connected_components, self.DG)
+ assert_raises(NetworkXNotImplemented, nx.connected_component_subgraphs, self.DG)
+ assert_raises(NetworkXNotImplemented, nx.node_connected_component, self.DG,1)
+ assert_raises(NetworkXNotImplemented, nx.is_connected, self.DG)
+ assert_raises(nx.NetworkXPointlessConcept, nx.is_connected, nx.Graph())