dmlc--dgl
bc3f852dab
* multigraph support on graph index * more tests * multigraph flag, bugfix on clear & copy * networkx interfaces * including graph index tests in Jenkins * node subgraph test * edge subgraphs * removing duplicates in pred/succ * more explicit test and doc * query source and destination from edge id * subgraphindex * renaming has_edge to has_edge_between, apply_edges adding eid * send_on and send_and_recv_on * DGLGraph edge subgraph * merged send_on and send_and_recv_on * change request * removing hashmap * creating multigraph by flag; mingw support * changes per request * reverting networkx auto multigraph discovery * notes on send/send_and_recv on multigraphs * changing test reducer from sum to max * added a fixme note in spmv scheduler
39 行
980 B
Python
39 行
980 B
Python
from dgl import DGLError
|
|
from dgl.utils import toindex
|
|
from dgl.graph_index import create_graph_index
|
|
|
|
def test_node_subgraph():
|
|
gi = create_graph_index()
|
|
gi.add_nodes(4)
|
|
gi.add_edge(0, 1)
|
|
gi.add_edge(0, 2)
|
|
gi.add_edge(0, 2)
|
|
gi.add_edge(0, 3)
|
|
|
|
sub2par_nodemap = [2, 0, 3]
|
|
sgi = gi.node_subgraph(toindex(sub2par_nodemap))
|
|
|
|
for s, d, e in zip(*sgi.edges()):
|
|
assert sgi.induced_edges[e] in gi.edge_id(
|
|
sgi.induced_nodes[s], sgi.induced_nodes[d])
|
|
|
|
def test_edge_subgraph():
|
|
gi = create_graph_index()
|
|
gi.add_nodes(4)
|
|
gi.add_edge(0, 1)
|
|
gi.add_edge(0, 1)
|
|
gi.add_edge(0, 2)
|
|
gi.add_edge(2, 3)
|
|
|
|
sub2par_edgemap = [3, 2]
|
|
sgi = gi.edge_subgraph(toindex(sub2par_edgemap))
|
|
|
|
for s, d, e in zip(*sgi.edges()):
|
|
assert sgi.induced_edges[e] in gi.edge_id(
|
|
sgi.induced_nodes[s], sgi.induced_nodes[d])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
test_node_subgraph()
|
|
test_edge_subgraph()
|