4
from nose.tools import *
6
from test_graph import TestGraph
9
class TestMultiGraph(TestGraph):
11
self.Graph=networkx.MultiGraph
13
self.k3adj={0: {1: [1], 2: [1]},
16
self.k3edges=[(0, 1), (0, 2), (1, 2)]
17
self.k3nodes=[0, 1, 2]
19
self.K3.adj=self.k3adj
22
def test_data_input(self):
24
# G=self.Graph(data={1:[2],2:[1]}, name="test")
25
# assert_equal(G.name,"test")
26
# assert_equal(sorted(G.adj.items()),[(1, {2: [1]}), (2, {1: [1]})])
29
def test_contains(self):
34
assert([] not in G ) # no exception for nonhashable
35
assert({1:1} not in G) # no exception for nonhashable
39
assert_equal(len(G),3)
40
assert_equal(G.order(),3)
41
assert_equal(G.number_of_nodes(),3)
43
def test_getitem(self):
45
assert_equal(G[0],{1: [1], 2: [1]})
46
assert_raises(KeyError, G.__getitem__, 'j')
47
assert_raises((TypeError,networkx.NetworkXError), G.__getitem__, ['A'])
49
def test_remove_node(self):
52
assert_equal(G.adj,{1:{2:[1]},2:{1:[1]}})
53
assert_raises((KeyError,networkx.NetworkXError), G.remove_node,-1)
56
def test_add_edge(self):
59
assert_equal(G.adj,{0: {1: [1]}, 1: {0: [1]}})
62
assert_equal(G.adj,{0: {1: [1]}, 1: {0: [1]}})
64
def test_add_edges_from(self):
66
G.add_edges_from([(0,1)])
67
assert_equal(G.adj,{0: {1: [1]}, 1: {0: [1]}})
70
def test_remove_edge(self):
73
assert_equal(G.adj,{0:{2:[1]},1:{2:[1]},2:{0:[1],1:[1]}})
74
assert_raises((KeyError,networkx.NetworkXError), G.remove_edge,-1,0)
76
def test_remove_edges_from(self):
78
G.remove_edges_from([(0,1)])
79
assert_equal(G.adj,{0:{2:[1]},1:{2:[1]},2:{0:[1],1:[1]}})
80
G.remove_edges_from([(0,0)]) # silent fail
82
def test_get_edge(self):
84
assert_equal(G.get_edge(0,1),[1])
85
assert_equal(G[0][1],[1])
86
assert_raises((KeyError,networkx.NetworkXError), G.get_edge,-1,0)
88
def test_adjacency_iter(self):
90
assert_equal(dict(G.adjacency_iter()),
95
def test_to_directed(self):
97
H=networkx.MultiDiGraph(G)
98
assert_equal(G.adj,H.adj)
99
assert_equal(G.adj,H.succ)
100
assert_equal(G.adj,H.pred)
102
assert_equal(G.adj,H.adj)
103
assert_equal(G.adj,H.succ)
104
assert_equal(G.adj,H.pred)
106
def test_selfloops(self):
109
assert_equal(G.nodes_with_selfloops(),[0])
110
assert_equal(G.selfloop_edges(),[(0,0,1)])
111
assert_equal(G.number_of_selfloops(),1)