def test_network_plot(): """Test the plot function on a network.""" net = Network() net.add_node('a', color='red') net.add_node('b', size=40) net.add_edge('a', 'b', uid='a-b', color='blue') net.plot(filename='simple_plot.html', node_color={'a': 'green'})
def test_add_node(): """Test the node assignment.""" # add string and create new node in the network net = Network() net.add_node('v', color='red') assert len(net.nodes) == 1 assert 'v' in net.nodes.uids assert net.nodes['v']['color'] == 'red' assert net.nodes.index['v'] == 0 assert net.number_of_nodes() == 1 assert isinstance(net.nodes['v'], Node) assert net.nodes['v'].uid == 'v' w = Node('w', color='green') net.add_node(w) assert net.number_of_nodes() == 2 assert isinstance(net.nodes['w'], Node) assert net.nodes['w'].uid == 'w' assert net.nodes['w']['color'] == 'green' v = Node('v', color='blue') with pytest.raises(Exception): net.add_node(v)
def test_add_edge(): """Test the edge assignment.""" a = Node('a') b = Node('b') c = Node('c') # add edges with no uids e = Edge(a, b) f = Edge(b, c) g = Edge(a, b) net = Network() net.add_edge(e) net.add_edge(f) with pytest.raises(Exception): net.add_edge(g) assert len(net.edges) == 2 assert len(net.nodes) == 3 with pytest.raises(Exception): net.add_node(a) with pytest.raises(Exception): net.add_edge(e) # add edges with uids e = Edge(a, b, uid='a-b') f = Edge(b, c, uid='b-c') g = Edge(a, b, uid='a-b') h = Edge(a, b, uid='ab') net = Network() net.add_edge(e) net.add_edge(f) with pytest.raises(Exception): net.add_edge(h) assert len(net.edges) == 2 assert len(net.nodes) == 3 with pytest.raises(Exception): net.add_edge(g) with pytest.raises(Exception): net.add_edge(e) # add edges and nodes net = Network() net.add_edge(e) # add new node with same uid with pytest.raises(Exception): net.add_node('a') # add same node with pytest.raises(Exception): net.add_node(a) # add node and edge with the node a1 = Node('a') a2 = Node('a') b = Node('b') e1 = Edge(a2, b) net = Network() net.add_node(a1) with pytest.raises(Exception): net.add_edge(e1) e2 = Edge(net.nodes['a'], b) net.add_edge(e2) # net add edge via string and nodes net = Network() net.add_node('a') net.add_node('b') net.add_edge('a', 'b') assert len(net.nodes) == 2 assert len(net.edges) == 1 with pytest.raises(Exception): net.add_edge('a', 'b') net = Network(multiedges=True) net.add_node('a') net.add_node('b') net.add_edge('a', 'b') assert len(net.nodes) == 2 assert len(net.edges) == 1 net.add_edge('a', 'b') assert len(net.nodes) == 2 assert len(net.edges) == 2 c = Node('c') net.add_edge('b', c) assert len(net.nodes) == 3 assert len(net.edges) == 3 a = Node('a') with pytest.raises(Exception): net.add_edge(a, 'b') with pytest.raises(Exception): net.add_edge(None) net = Network() net.add_edge('a', 'b', uid='a-b', length=10) assert net.number_of_nodes() == 2 assert net.number_of_edges() == 1 assert isinstance(net.edges['a-b'], Edge) assert net.edges['a-b'].uid == 'a-b' assert net.edges['a-b']['length'] == 10 assert net.nodes['a'].uid == 'a' assert net.nodes['b'].uid == 'b' b = net.nodes['b'] c = Node('c') net.add_edge(b, c, uid='c-d', length=5) assert net.number_of_edges() == 2 net.add_edge('c', 'd', uid='c-2-d') assert net.number_of_edges() == 3 assert net.edges['c-2-d'].v.uid == 'c' net.add_edge('a', 'd', uid='a-d') assert net.edges['a-d'].uid == 'a-d' ab = Edge(Node('a'), Node('b'), uid='a-b') net = Network() net.add_edge(ab, color='blue') assert net.edges['a-b']['color'] == 'blue' net = Network() net.add_node("A") net.add_edge("A", "B") assert net.number_of_edges() == 1 assert net.number_of_nodes() == 2 net = Network() edges = [("A", "B"), ("B", "C")] for edge in edges: net.add_edge(edge) assert net.number_of_edges() == 2 assert net.number_of_nodes() == 3