diff --git a/cidr4_merger.py b/cidr4_merger.py index b1fd20f..e4b9575 100644 --- a/cidr4_merger.py +++ b/cidr4_merger.py @@ -138,7 +138,7 @@ def merge_neighbors( new_nodes.remove(a) new_nodes.remove(b) new_nodes.append(parent) - return sort_nodes(nodes) + return sort_nodes(new_nodes) def find_neighbours_singles(groups: defaultdict) -> tuple[list, list]: diff --git a/tests/test_cidr4_merger.py b/tests/test_cidr4_merger.py index efb0925..12b8858 100644 --- a/tests/test_cidr4_merger.py +++ b/tests/test_cidr4_merger.py @@ -296,8 +296,29 @@ def test_find_neighbours_singles( ) -def test_merge_neighbors(): - assert True +def test_merge_neighbors__only_neighbours(nodes_only_neighbours): + new_nodes = merge_neighbors( + nodes_only_neighbours, + [ + ((0, 2, 12, 0), (1073741824, 2, 3, 0)), + ((2147483648, 2, 1, 2147483648), (3221225472, 2, 2, 2147483648)), + ], + ) + assert new_nodes == [ + (0, 1, 15, 0), + (2147483648, 1, 3, 0), + ] + + +def test_merge_neighbors__neighbours_n_singles(nodes_with_neighbours_n_singles): + new_nodes = merge_neighbors( + nodes_with_neighbours_n_singles, + [((0, 2, 12, 0), (1073741824, 2, 3, 0))], + ) + assert new_nodes == [ + (0, 1, 15, 0), + (2147483648, 2, 1, 2147483648), + ] # def test_merge_nodes_recursion():