blob: 5091161c8ae9545537c70fdb39adc2769003de95 [file] [log] [blame]
#!/usr/bin/env python
from nose.tools import *
import networkx as nx
class TestNeighborConnectivity(object):
def test_degree_p4(self):
G=nx.path_graph(4)
answer={1:2.0,2:1.5}
nd = nx.average_degree_connectivity(G)
assert_equal(nd,answer)
D=G.to_directed()
answer={2:2.0,4:1.5}
nd = nx.average_degree_connectivity(D)
assert_equal(nd,answer)
answer={1:2.0,2:1.5}
D=G.to_directed()
nd = nx.average_degree_connectivity(D, source='in', target='in')
assert_equal(nd,answer)
D=G.to_directed()
nd = nx.average_degree_connectivity(D, source='in', target='in')
assert_equal(nd,answer)
def test_degree_p4_weighted(self):
G=nx.path_graph(4)
G[1][2]['weight']=4
answer={1:2.0,2:1.8}
nd = nx.average_degree_connectivity(G,weight='weight')
assert_equal(nd,answer)
answer={1:2.0,2:1.5}
nd = nx.average_degree_connectivity(G)
assert_equal(nd,answer)
D=G.to_directed()
answer={2:2.0,4:1.8}
nd = nx.average_degree_connectivity(D,weight='weight')
assert_equal(nd,answer)
answer={1:2.0,2:1.8}
D=G.to_directed()
nd = nx.average_degree_connectivity(D,weight='weight', source='in',
target='in')
assert_equal(nd,answer)
D=G.to_directed()
nd = nx.average_degree_connectivity(D,source='in',target='out',
weight='weight')
assert_equal(nd,answer)
def test_weight_keyword(self):
G=nx.path_graph(4)
G[1][2]['other']=4
answer={1:2.0,2:1.8}
nd = nx.average_degree_connectivity(G,weight='other')
assert_equal(nd,answer)
answer={1:2.0,2:1.5}
nd = nx.average_degree_connectivity(G,weight=None)
assert_equal(nd,answer)
D=G.to_directed()
answer={2:2.0,4:1.8}
nd = nx.average_degree_connectivity(D,weight='other')
assert_equal(nd,answer)
answer={1:2.0,2:1.8}
D=G.to_directed()
nd = nx.average_degree_connectivity(D,weight='other', source='in',
target='in')
assert_equal(nd,answer)
D=G.to_directed()
nd = nx.average_degree_connectivity(D,weight='other',source='in',
target='in')
assert_equal(nd,answer)
def test_degree_barrat(self):
G=nx.star_graph(5)
G.add_edges_from([(5,6),(5,7),(5,8),(5,9)])
G[0][5]['weight']=5
nd = nx.average_degree_connectivity(G)[5]
assert_equal(nd,1.8)
nd = nx.average_degree_connectivity(G,weight='weight')[5]
assert_almost_equal(nd,3.222222,places=5)
nd = nx.k_nearest_neighbors(G,weight='weight')[5]
assert_almost_equal(nd,3.222222,places=5)
def test_zero_deg(self):
G=nx.DiGraph()
G.add_edge(1,2)
G.add_edge(1,3)
G.add_edge(1,4)
c = nx.average_degree_connectivity(G)
assert_equal(c,{1:0,3:1})
c = nx.average_degree_connectivity(G, source='in', target='in')
assert_equal(c,{0:0,1:0})
c = nx.average_degree_connectivity(G, source='in', target='out')
assert_equal(c,{0:0,1:3})
c = nx.average_degree_connectivity(G, source='in', target='in+out')
assert_equal(c,{0:0,1:3})
c = nx.average_degree_connectivity(G, source='out', target='out')
assert_equal(c,{0:0,3:0})
c = nx.average_degree_connectivity(G, source='out', target='in')
assert_equal(c,{0:0,3:1})
c = nx.average_degree_connectivity(G, source='out', target='in+out')
assert_equal(c,{0:0,3:1})
def test_in_out_weight(self):
from itertools import permutations
G=nx.DiGraph()
G.add_edge(1,2,weight=1)
G.add_edge(1,3,weight=1)
G.add_edge(3,1,weight=1)
for s,t in permutations(['in','out','in+out'],2):
c = nx.average_degree_connectivity(G, source=s, target=t)
cw = nx.average_degree_connectivity(G,source=s, target=t,
weight='weight')
assert_equal(c,cw)