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

Function test_add_reverse_edges

tests/python/common/transforms/test_transform.py:420–585  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

418
419
420def test_add_reverse_edges():
421 # homogeneous graph
422 g = dgl.graph((F.tensor([0, 1, 3, 1]), F.tensor([1, 2, 0, 2])))
423 g.ndata["h"] = F.tensor([[0.0], [1.0], [2.0], [1.0]])
424 g.edata["h"] = F.tensor([[3.0], [4.0], [5.0], [6.0]])
425 bg = dgl.add_reverse_edges(g, copy_ndata=True, copy_edata=True)
426 u, v = g.edges()
427 ub, vb = bg.edges()
428 assert F.array_equal(F.cat([u, v], dim=0), ub)
429 assert F.array_equal(F.cat([v, u], dim=0), vb)
430 assert F.array_equal(g.ndata["h"], bg.ndata["h"])
431 assert F.array_equal(
432 F.cat([g.edata["h"], g.edata["h"]], dim=0), bg.edata["h"]
433 )
434 bg.ndata["hh"] = F.tensor([[0.0], [1.0], [2.0], [1.0]])
435 assert ("hh" in g.ndata) is False
436 bg.edata["hh"] = F.tensor(
437 [[0.0], [1.0], [2.0], [1.0], [0.0], [1.0], [2.0], [1.0]]
438 )
439 assert ("hh" in g.edata) is False
440
441 # donot share ndata and edata
442 bg = dgl.add_reverse_edges(g, copy_ndata=False, copy_edata=False)
443 ub, vb = bg.edges()
444 assert F.array_equal(F.cat([u, v], dim=0), ub)
445 assert F.array_equal(F.cat([v, u], dim=0), vb)
446 assert ("h" in bg.ndata) is False
447 assert ("h" in bg.edata) is False
448
449 # zero edge graph
450 g = dgl.graph(([], []))
451 bg = dgl.add_reverse_edges(
452 g, copy_ndata=True, copy_edata=True, exclude_self=False
453 )
454
455 # heterogeneous graph
456 g = dgl.heterograph(
457 {
458 ("user", "wins", "user"): (
459 F.tensor([0, 2, 0, 2, 2]),
460 F.tensor([1, 1, 2, 1, 0]),
461 ),
462 ("user", "plays", "game"): (
463 F.tensor([1, 2, 1]),
464 F.tensor([2, 1, 1]),
465 ),
466 ("user", "follows", "user"): (
467 F.tensor([1, 2, 1]),
468 F.tensor([0, 0, 0]),
469 ),
470 }
471 )
472 g.nodes["game"].data["hv"] = F.ones((3, 1))
473 g.nodes["user"].data["hv"] = F.ones((3, 1))
474 g.edges["wins"].data["h"] = F.tensor([0, 1, 2, 3, 4])
475 bg = dgl.add_reverse_edges(
476 g, copy_ndata=True, copy_edata=True, ignore_bipartite=True
477 )

Callers

nothing calls this directly

Calls 6

all_edgesMethod · 0.80
graphMethod · 0.45
edgesMethod · 0.45
keysMethod · 0.45
num_nodesMethod · 0.45
num_edgesMethod · 0.45

Tested by

no test coverage detected