()
| 838 | F._default_context_str == "gpu", reason="It doesn't support GPU" |
| 839 | ) |
| 840 | def test_reorder_nodes(): |
| 841 | g = create_large_graph(1000) |
| 842 | new_nids = np.random.permutation(g.num_nodes()) |
| 843 | # TODO(zhengda) we need to test both CSR and COO. |
| 844 | new_g = dgl.partition.reorder_nodes(g, new_nids) |
| 845 | new_in_deg = new_g.in_degrees() |
| 846 | new_out_deg = new_g.out_degrees() |
| 847 | in_deg = g.in_degrees() |
| 848 | out_deg = g.out_degrees() |
| 849 | new_in_deg1 = F.scatter_row(in_deg, F.tensor(new_nids), in_deg) |
| 850 | new_out_deg1 = F.scatter_row(out_deg, F.tensor(new_nids), out_deg) |
| 851 | assert np.all(F.asnumpy(new_in_deg == new_in_deg1)) |
| 852 | assert np.all(F.asnumpy(new_out_deg == new_out_deg1)) |
| 853 | orig_ids = F.asnumpy(new_g.ndata["orig_id"]) |
| 854 | for nid in range(g.num_nodes()): |
| 855 | neighs = F.asnumpy(g.successors(nid)) |
| 856 | new_neighs1 = new_nids[neighs] |
| 857 | new_nid = new_nids[nid] |
| 858 | new_neighs2 = new_g.successors(new_nid) |
| 859 | assert np.all(np.sort(new_neighs1) == np.sort(F.asnumpy(new_neighs2))) |
| 860 | |
| 861 | for nid in range(new_g.num_nodes()): |
| 862 | neighs = F.asnumpy(new_g.successors(nid)) |
| 863 | old_neighs1 = orig_ids[neighs] |
| 864 | old_nid = orig_ids[nid] |
| 865 | old_neighs2 = g.successors(old_nid) |
| 866 | assert np.all(np.sort(old_neighs1) == np.sort(F.asnumpy(old_neighs2))) |
| 867 | |
| 868 | neighs = F.asnumpy(new_g.predecessors(nid)) |
| 869 | old_neighs1 = orig_ids[neighs] |
| 870 | old_nid = orig_ids[nid] |
| 871 | old_neighs2 = g.predecessors(old_nid) |
| 872 | assert np.all(np.sort(old_neighs1) == np.sort(F.asnumpy(old_neighs2))) |
| 873 | |
| 874 | |
| 875 | @parametrize_idtype |
nothing calls this directly
no test coverage detected