MCPcopy
hub / github.com/dmlc/dgl / _test_query

Function _test_query

tests/python/common/test_heterograph.py:891–957  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

889 etypes = ["follows", "plays", "wishes", "develops"]
890
891 def _test_query():
892 for etype in etypes:
893 utype, _, vtype = HG.to_canonical_etype(etype)
894 g = HG[etype]
895 srcs, dsts = edges[etype]
896 for src, dst in zip(srcs, dsts):
897 assert g.has_edges_between(src, dst)
898 assert F.asnumpy(g.has_edges_between(srcs, dsts)).all()
899
900 srcs, dsts = negative_edges[etype]
901 for src, dst in zip(srcs, dsts):
902 assert not g.has_edges_between(src, dst)
903 assert not F.asnumpy(g.has_edges_between(srcs, dsts)).any()
904
905 srcs, dsts = edges[etype]
906 n_edges = len(srcs)
907
908 # predecessors & in_edges & in_degree
909 pred = [s for s, d in zip(srcs, dsts) if d == 0]
910 assert set(F.asnumpy(g.predecessors(0)).tolist()) == set(pred)
911 u, v = g.in_edges([0])
912 assert F.asnumpy(v).tolist() == [0] * len(pred)
913 assert set(F.asnumpy(u).tolist()) == set(pred)
914 assert g.in_degrees(0) == len(pred)
915
916 # successors & out_edges & out_degree
917 succ = [d for s, d in zip(srcs, dsts) if s == 0]
918 assert set(F.asnumpy(g.successors(0)).tolist()) == set(succ)
919 u, v = g.out_edges([0])
920 assert F.asnumpy(u).tolist() == [0] * len(succ)
921 assert set(F.asnumpy(v).tolist()) == set(succ)
922 assert g.out_degrees(0) == len(succ)
923
924 # edge_ids
925 for i, (src, dst) in enumerate(zip(srcs, dsts)):
926 assert g.edge_ids(src, dst, etype=etype) == i
927 _, _, eid = g.edge_ids(src, dst, etype=etype, return_uv=True)
928 assert eid == i
929 assert F.asnumpy(g.edge_ids(srcs, dsts)).tolist() == list(
930 range(n_edges)
931 )
932 u, v, e = g.edge_ids(srcs, dsts, return_uv=True)
933 u, v, e = F.asnumpy(u), F.asnumpy(v), F.asnumpy(e)
934 assert u[e].tolist() == srcs
935 assert v[e].tolist() == dsts
936
937 # find_edges
938 u, v = g.find_edges(list(range(n_edges)))
939 assert F.asnumpy(u).tolist() == srcs
940 assert F.asnumpy(v).tolist() == dsts
941
942 # all_edges.
943 for order in ["eid"]:
944 u, v, e = g.all_edges(form="all", order=order)
945 assert F.asnumpy(u).tolist() == srcs
946 assert F.asnumpy(v).tolist() == dsts
947 assert F.asnumpy(e).tolist() == list(range(n_edges))
948

Callers 1

test_view1Function · 0.85

Calls 13

asnumpyMethod · 0.80
all_edgesMethod · 0.80
to_canonical_etypeMethod · 0.45
has_edges_betweenMethod · 0.45
predecessorsMethod · 0.45
in_edgesMethod · 0.45
in_degreesMethod · 0.45
successorsMethod · 0.45
out_edgesMethod · 0.45
out_degreesMethod · 0.45
edge_idsMethod · 0.45
find_edgesMethod · 0.45

Tested by

no test coverage detected