(idtype)
| 2528 | |
| 2529 | @parametrize_idtype |
| 2530 | def test_format(idtype): |
| 2531 | # single relation |
| 2532 | g = dgl.graph(([0, 1, 0, 2], [0, 1, 1, 0]), idtype=idtype, device=F.ctx()) |
| 2533 | assert g.formats()["created"] == ["coo"] |
| 2534 | g1 = g.formats(["coo", "csr", "csc"]) |
| 2535 | assert len(g1.formats()["created"]) + len(g1.formats()["not created"]) == 3 |
| 2536 | g1.create_formats_() |
| 2537 | assert len(g1.formats()["created"]) == 3 |
| 2538 | assert g.formats()["created"] == ["coo"] |
| 2539 | |
| 2540 | # multiple relation |
| 2541 | g = dgl.heterograph( |
| 2542 | { |
| 2543 | ("user", "follows", "user"): ([0, 1], [1, 2]), |
| 2544 | ("user", "plays", "game"): ([0, 1, 1, 2], [0, 0, 1, 1]), |
| 2545 | ("developer", "develops", "game"): ([0, 1], [0, 1]), |
| 2546 | }, |
| 2547 | idtype=idtype, |
| 2548 | device=F.ctx(), |
| 2549 | ) |
| 2550 | user_feat = F.randn((g["follows"].number_of_src_nodes(), 5)) |
| 2551 | g["follows"].srcdata["h"] = user_feat |
| 2552 | g1 = g.formats("csc") |
| 2553 | # test frame |
| 2554 | assert F.array_equal(g1["follows"].srcdata["h"], user_feat) |
| 2555 | # test each relation graph |
| 2556 | assert g1.formats()["created"] == ["csc"] |
| 2557 | assert len(g1.formats()["not created"]) == 0 |
| 2558 | |
| 2559 | # in_degrees |
| 2560 | g = dgl.rand_graph(100, 2340).to(F.ctx()) |
| 2561 | ind_arr = [] |
| 2562 | for vid in range(0, 100): |
| 2563 | ind_arr.append(g.in_degrees(vid)) |
| 2564 | in_degrees = g.in_degrees() |
| 2565 | g = g.formats("coo") |
| 2566 | for vid in range(0, 100): |
| 2567 | assert g.in_degrees(vid) == ind_arr[vid] |
| 2568 | assert F.array_equal(in_degrees, g.in_degrees()) |
| 2569 | |
| 2570 | |
| 2571 | @parametrize_idtype |
nothing calls this directly
no test coverage detected