(idtype)
| 3074 | ) |
| 3075 | @parametrize_idtype |
| 3076 | def test_remove_edges(idtype): |
| 3077 | # homogeneous Graphs |
| 3078 | g = dgl.graph(([0, 1], [1, 2]), idtype=idtype, device=F.ctx()) |
| 3079 | e = 0 |
| 3080 | g.remove_edges(e) |
| 3081 | assert g.num_edges() == 1 |
| 3082 | u, v = g.edges(form="uv", order="eid") |
| 3083 | assert F.array_equal(u, F.tensor([1], dtype=idtype)) |
| 3084 | assert F.array_equal(v, F.tensor([2], dtype=idtype)) |
| 3085 | g = dgl.graph(([0, 1], [1, 2]), idtype=idtype, device=F.ctx()) |
| 3086 | e = [0] |
| 3087 | g.remove_edges(e) |
| 3088 | assert g.num_edges() == 1 |
| 3089 | u, v = g.edges(form="uv", order="eid") |
| 3090 | assert F.array_equal(u, F.tensor([1], dtype=idtype)) |
| 3091 | assert F.array_equal(v, F.tensor([2], dtype=idtype)) |
| 3092 | e = F.tensor([0], dtype=idtype) |
| 3093 | g.remove_edges(e) |
| 3094 | assert g.num_edges() == 0 |
| 3095 | |
| 3096 | # has node data |
| 3097 | g = dgl.graph(([0, 1], [1, 2]), idtype=idtype, device=F.ctx()) |
| 3098 | g.ndata["h"] = F.copy_to(F.tensor([1, 2, 3], dtype=idtype), ctx=F.ctx()) |
| 3099 | g.remove_edges(1) |
| 3100 | assert g.num_edges() == 1 |
| 3101 | assert F.array_equal(g.ndata["h"], F.tensor([1, 2, 3], dtype=idtype)) |
| 3102 | |
| 3103 | # has edge data |
| 3104 | g = dgl.graph(([0, 1], [1, 2]), idtype=idtype, device=F.ctx()) |
| 3105 | g.edata["h"] = F.copy_to(F.tensor([1, 2], dtype=idtype), ctx=F.ctx()) |
| 3106 | g.remove_edges(0) |
| 3107 | assert g.num_edges() == 1 |
| 3108 | assert F.array_equal(g.edata["h"], F.tensor([2], dtype=idtype)) |
| 3109 | |
| 3110 | # invalid eid |
| 3111 | assert_fail = False |
| 3112 | try: |
| 3113 | g.remove_edges(1) |
| 3114 | except: |
| 3115 | assert_fail = True |
| 3116 | assert assert_fail |
| 3117 | |
| 3118 | # bipartite graph |
| 3119 | g = dgl.heterograph( |
| 3120 | {("user", "plays", "game"): ([0, 1], [1, 2])}, |
| 3121 | idtype=idtype, |
| 3122 | device=F.ctx(), |
| 3123 | ) |
| 3124 | e = 0 |
| 3125 | g.remove_edges(e) |
| 3126 | assert g.num_edges() == 1 |
| 3127 | u, v = g.edges(form="uv", order="eid") |
| 3128 | assert F.array_equal(u, F.tensor([1], dtype=idtype)) |
| 3129 | assert F.array_equal(v, F.tensor([2], dtype=idtype)) |
| 3130 | g = dgl.heterograph( |
| 3131 | {("user", "plays", "game"): ([0, 1], [1, 2])}, |
| 3132 | idtype=idtype, |
| 3133 | device=F.ctx(), |
nothing calls this directly
no test coverage detected