Skip to content

Commit

Permalink
added remove_selfloop_edges
Browse files Browse the repository at this point in the history
  • Loading branch information
mateuszStolarski committed Oct 28, 2024
1 parent 6146d52 commit 5dffff5
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
9 changes: 9 additions & 0 deletions network_diffusion/mln/functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -544,3 +544,12 @@ def draw_mln(net: MultilayerNetwork, dpi: int = 300) -> None:
nx.draw(layer_graph, ax=axs[idx], pos=pos)
nx.drawing.draw_networkx_labels(layer_graph, ax=axs[idx], pos=pos)
plt.show()


def remove_selfloop_edges(net: MultilayerNetwork) -> MultilayerNetwork:
"""Remove selfloop edges from the network."""
for l_name in net.layers:
selfloop_edges = list(nx.selfloop_edges(net.layers[l_name]))
net.layers[l_name].remove_edges_from(selfloop_edges)

return net
10 changes: 10 additions & 0 deletions network_diffusion/tests/mln/test_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
get_toy_network_piotr,
multiplexing_coefficient,
neighbourhood_size,
remove_selfloop_edges,
)

DEGREE_NET_1 = {
Expand Down Expand Up @@ -125,6 +126,15 @@ def test_neighbourhood_size(self):
raw_nss = neighbourhood_size(network)
filtered_nss = {a.actor_id: d for a, d in raw_nss.items()}
self.assertEqual(filtered_nss, exp_neighbourhood_size)

def test_remove_selfloop_edges(self):
self.network_1["business"].add_edge('Medici', 'Medici')
self.network_1["marriage"].add_edge('Ridolfi', 'Ridolfi')

self.network_1 = remove_selfloop_edges(self.network_1)

for l_name in self.network_1.layers:
self.assertEqual(list(nx.selfloop_edges(self.network_1[l_name])), [])


if __name__ == "__main__":
Expand Down

0 comments on commit 5dffff5

Please sign in to comment.