def test_hybridgraphs(self): ''' Test graphs with both directed and undirected edges. ''' G = nx.MultiGraph() G.add_edge(1, 2, weight=15) G.add_edge(1, 2, weight=15) G.add_edge(2, 4) graph = Graph() graph.add_graph_from_networkx(G) # a custom directed edge in an undirected networkx multigraph e = Edge() e.data['source'] = '1' e.data['target'] = '4' graph.add_edge(e, directed=True) expected_edges = [ Edge(classes=' multiple_edges ', data={ 'source': '1', 'target': '2', 'weight': 15 }, position={}), Edge(classes=' multiple_edges ', data={ 'source': '1', 'target': '2', 'weight': 15 }, position={}), Edge(classes=' multiple_edges ', data={ 'source': '2', 'target': '4' }, position={}), Edge(classes=' directed ', data={ 'source': '1', 'target': '4' }, position={}) ] compare_edges(expected_edges, graph.edges)
def test_hybridgraphs(self): """ Test graphs with both directed and undirected edges. """ G = nx.MultiGraph() G.add_edge(1, 2, weight=15) G.add_edge(1, 2, weight=15) G.add_edge(2, 4) graph = Graph() graph.add_graph_from_networkx(G) # a custom directed edge in an undirected networkx multigraph e = Edge() e.data["source"] = "1" e.data["target"] = "4" graph.add_edge(e, directed=True) expected_edges = [ Edge( classes=" multiple_edges ", data={ "source": "1", "target": "2", "weight": 15 }, ), Edge( classes=" multiple_edges ", data={ "source": "1", "target": "2", "weight": 15 }, ), Edge(classes=" multiple_edges ", data={ "source": "2", "target": "4" }), Edge(classes=" directed ", data={ "source": "1", "target": "4" }), ] compare_edges(expected_edges, graph.edges)
def test_add_edges(self): """ Test to ensure that an edge with the corresponding nodes will be added to the graph """ edge = Edge(data={"source": "0", "target": "1"}) edge_inv = Edge(data={"source": "1", "target": "0"}) expected_nodes = [ Node(data={"id": "0"}, position={}), Node(data={"id": "1"}, position={}), ] expected_edges = [ Edge(classes="", data={ "source": "0", "target": "1" }), ] expected_edges_multiple = [ Edge(classes="", data={ "source": "0", "target": "1" }), Edge(classes=" multiple_edges ", data={ "source": "1", "target": "0" }), ] graph = Graph() graph.add_edge(copy.copy(edge)) compare_edges(expected_edges, graph.edges) compare_nodes(expected_nodes, graph.nodes) # test for passing arguments graph.add_edge(copy.copy(edge_inv), multiple_edges=True) compare_edges(expected_edges_multiple, graph.edges) compare_nodes(expected_nodes, graph.nodes)