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

Function test_reverse

tests/python/common/test_heterograph.py:2587–2728  ·  view source on GitHub ↗
(idtype)

Source from the content-addressed store, hash-verified

2585
2586@parametrize_idtype
2587def test_reverse(idtype):
2588 g = dgl.heterograph(
2589 {
2590 ("user", "follows", "user"): (
2591 [0, 1, 2, 4, 3, 1, 3],
2592 [1, 2, 3, 2, 0, 0, 1],
2593 )
2594 },
2595 idtype=idtype,
2596 device=F.ctx(),
2597 )
2598 gidx = g._graph
2599 r_gidx = gidx.reverse()
2600
2601 assert gidx.num_nodes(0) == r_gidx.num_nodes(0)
2602 assert gidx.num_edges(0) == r_gidx.num_edges(0)
2603 g_s, g_d, _ = gidx.edges(0)
2604 rg_s, rg_d, _ = r_gidx.edges(0)
2605 assert F.array_equal(g_s, rg_d)
2606 assert F.array_equal(g_d, rg_s)
2607
2608 # force to start with 'csr'
2609 gidx = gidx.formats("csr")
2610 gidx = gidx.formats(["coo", "csr", "csc"])
2611 r_gidx = gidx.reverse()
2612 assert "csr" in gidx.formats()["created"]
2613 assert "csc" in r_gidx.formats()["created"]
2614 assert gidx.num_nodes(0) == r_gidx.num_nodes(0)
2615 assert gidx.num_edges(0) == r_gidx.num_edges(0)
2616 g_s, g_d, _ = gidx.edges(0)
2617 rg_s, rg_d, _ = r_gidx.edges(0)
2618 assert F.array_equal(g_s, rg_d)
2619 assert F.array_equal(g_d, rg_s)
2620
2621 # force to start with 'csc'
2622 gidx = gidx.formats("csc")
2623 gidx = gidx.formats(["coo", "csr", "csc"])
2624 r_gidx = gidx.reverse()
2625 assert "csc" in gidx.formats()["created"]
2626 assert "csr" in r_gidx.formats()["created"]
2627 assert gidx.num_nodes(0) == r_gidx.num_nodes(0)
2628 assert gidx.num_edges(0) == r_gidx.num_edges(0)
2629 g_s, g_d, _ = gidx.edges(0)
2630 rg_s, rg_d, _ = r_gidx.edges(0)
2631 assert F.array_equal(g_s, rg_d)
2632 assert F.array_equal(g_d, rg_s)
2633
2634 g = dgl.heterograph(
2635 {
2636 ("user", "follows", "user"): (
2637 [0, 1, 2, 4, 3, 1, 3],
2638 [1, 2, 3, 2, 0, 0, 1],
2639 ),
2640 ("user", "plays", "game"): (
2641 [0, 0, 2, 3, 3, 4, 1],
2642 [1, 0, 1, 0, 1, 0, 0],
2643 ),
2644 ("developer", "develops", "game"): ([0, 1, 1, 2], [0, 0, 1, 1]),

Callers

nothing calls this directly

Calls 7

reverseMethod · 0.80
find_edgeMethod · 0.80
ctxMethod · 0.45
num_nodesMethod · 0.45
num_edgesMethod · 0.45
edgesMethod · 0.45
formatsMethod · 0.45

Tested by

no test coverage detected