MCPcopy Index your code
hub / github.com/dmlc/dgl / test_remove_selfloop

Function test_remove_selfloop

tests/python/common/transforms/test_transform.py:2198–2256  ·  view source on GitHub ↗
(idtype)

Source from the content-addressed store, hash-verified

2196
2197@parametrize_idtype
2198def test_remove_selfloop(idtype):
2199 # homogeneous graph
2200 g = dgl.graph(([0, 0, 0, 1], [1, 0, 0, 2]), idtype=idtype, device=F.ctx())
2201 g.edata["he"] = F.copy_to(F.tensor([1, 2, 3, 4], dtype=idtype), ctx=F.ctx())
2202 g = dgl.remove_self_loop(g)
2203 assert g.num_nodes() == 3
2204 assert g.num_edges() == 2
2205 assert F.array_equal(g.edata["he"], F.tensor([1, 4], dtype=idtype))
2206
2207 # bipartite graph
2208 g = dgl.heterograph(
2209 {("user", "plays", "game"): ([0, 1, 2], [1, 2, 2])},
2210 idtype=idtype,
2211 device=F.ctx(),
2212 )
2213 # nothing will happend
2214 raise_error = False
2215 try:
2216 g = dgl.remove_self_loop(g, etype="plays")
2217 except:
2218 raise_error = True
2219 assert raise_error
2220
2221 g = create_test_heterograph4(idtype)
2222 g = dgl.remove_self_loop(g, etype="follows")
2223 assert g.num_nodes("user") == 3
2224 assert g.num_nodes("game") == 2
2225 assert g.num_edges("follows") == 2
2226 assert g.num_edges("plays") == 2
2227 u, v = g.edges(form="uv", order="eid", etype="follows")
2228 assert F.array_equal(u, F.tensor([1, 2], dtype=idtype))
2229 assert F.array_equal(v, F.tensor([0, 1], dtype=idtype))
2230 assert F.array_equal(
2231 g.edges["follows"].data["h"], F.tensor([2, 4], dtype=idtype)
2232 )
2233 assert F.array_equal(
2234 g.edges["plays"].data["h"], F.tensor([1, 2], dtype=idtype)
2235 )
2236
2237 raise_error = False
2238 try:
2239 g = dgl.remove_self_loop(g, etype="plays")
2240 except:
2241 raise_error = True
2242 assert raise_error
2243
2244 # batch information
2245 g = dgl.graph(
2246 ([0, 0, 0, 1, 3, 3, 4], [1, 0, 0, 2, 3, 4, 4]),
2247 idtype=idtype,
2248 device=F.ctx(),
2249 )
2250 g.set_batch_num_nodes([3, 2])
2251 g.set_batch_num_edges([4, 3])
2252 g = dgl.remove_self_loop(g)
2253 assert g.num_nodes() == 5
2254 assert g.num_edges() == 3
2255 assert F.array_equal(g.batch_num_nodes(), F.tensor([3, 2], dtype=idtype))

Callers

nothing calls this directly

Calls 11

set_batch_num_nodesMethod · 0.80
set_batch_num_edgesMethod · 0.80
batch_num_nodesMethod · 0.80
batch_num_edgesMethod · 0.80
create_test_heterograph4Function · 0.70
graphMethod · 0.45
ctxMethod · 0.45
copy_toMethod · 0.45
num_nodesMethod · 0.45
num_edgesMethod · 0.45
edgesMethod · 0.45

Tested by

no test coverage detected