blob: ff3530cc520c0e67ae8c1cff67829cbe94a4a294 [file] [log] [blame]
#!/usr/bin/env python
from nose.tools import *
import networkx
class TestDistance:
def setUp(self):
G=networkx.Graph()
from networkx import convert_node_labels_to_integers as cnlti
G=cnlti(networkx.grid_2d_graph(4,4),first_label=1,ordering="sorted")
self.G=G
def test_eccentricity(self):
assert_equal(networkx.eccentricity(self.G,1),6)
e=networkx.eccentricity(self.G)
assert_equal(e[1],6)
sp=networkx.shortest_path_length(self.G)
e=networkx.eccentricity(self.G,sp=sp)
assert_equal(e[1],6)
e=networkx.eccentricity(self.G,v=1)
assert_equal(e,6)
e=networkx.eccentricity(self.G,v=[1,1]) #This behavior changed in version 1.8 (ticket #739)
assert_equal(e[1],6)
e=networkx.eccentricity(self.G,v=[1,2])
assert_equal(e[1],6)
# test against graph with one node
G=networkx.path_graph(1)
e=networkx.eccentricity(G)
assert_equal(e[0],0)
e=networkx.eccentricity(G,v=0)
assert_equal(e,0)
assert_raises(networkx.NetworkXError, networkx.eccentricity, G, 1)
# test against empty graph
G=networkx.empty_graph()
e=networkx.eccentricity(G)
assert_equal(e,{})
def test_diameter(self):
assert_equal(networkx.diameter(self.G),6)
def test_radius(self):
assert_equal(networkx.radius(self.G),4)
def test_periphery(self):
assert_equal(set(networkx.periphery(self.G)),set([1, 4, 13, 16]))
def test_center(self):
assert_equal(set(networkx.center(self.G)),set([6, 7, 10, 11]))
def test_radius_exception(self):
G=networkx.Graph()
G.add_edge(1,2)
G.add_edge(3,4)
assert_raises(networkx.NetworkXError, networkx.diameter, G)
@raises(networkx.NetworkXError)
def test_eccentricity_infinite(self):
G=networkx.Graph([(1,2),(3,4)])
e = networkx.eccentricity(G)
@raises(networkx.NetworkXError)
def test_eccentricity_invalid(self):
G=networkx.Graph([(1,2),(3,4)])
e = networkx.eccentricity(G,sp=1)