Cidr4 merge algorithm #5

Merged
PavelPatsey merged 91 commits from CIDR4_merge_algorithm into main 2025-01-27 22:05:39 +03:00
2 changed files with 15 additions and 16 deletions
Showing only changes of commit 05c78ad399 - Show all commits
+10 -10
View File
@@ -33,18 +33,18 @@ ip_d = int(bin_d, 2)
def test_cidr4_to_node():
assert cidr4_to_node("4.78.139.0/24") == (72256256, 24, 0)
assert cidr4_to_node("0.0.0.0/32") == (0, 32, 0)
assert cidr4_to_node("4.78.139.0/24") == (72256256, 24)
assert cidr4_to_node("0.0.0.0/32") == (0, 32)
assert cidr4_to_node("23.234.30.0/24") == (401219072, 24, 0)
assert cidr4_to_node("172.217.0.0/19") == (2899902464, 19, 0)
assert cidr4_to_node("23.225.141.0/24") == (400657664, 24, 0)
assert cidr4_to_node("31.13.94.0/23") == (520969728, 23, 0)
assert cidr4_to_node("23.234.30.0/24") == (401219072, 24)
assert cidr4_to_node("172.217.0.0/19") == (2899902464, 19)
assert cidr4_to_node("23.225.141.0/24") == (400657664, 24)
assert cidr4_to_node("31.13.94.0/23") == (520969728, 23)
assert cidr4_to_node("0.0.0.0/2") == (0, 2, 0)
assert cidr4_to_node("64.0.0.0/2") == (1073741824, 2, 0)
assert cidr4_to_node("128.0.0.0/2") == (2147483648, 2, 0)
assert cidr4_to_node("192.0.0.0/2") == (3221225472, 2, 0)
assert cidr4_to_node("0.0.0.0/2") == (0, 2)
assert cidr4_to_node("64.0.0.0/2") == (1073741824, 2)
assert cidr4_to_node("128.0.0.0/2") == (2147483648, 2)
assert cidr4_to_node("192.0.0.0/2") == (3221225472, 2)
def test_make_cidr4():
+5 -6
View File
@@ -1,6 +1,6 @@
import cProfile
Node = tuple[int, int, int]
Node = tuple[int, int]
class Cidr4MergerError(Exception):
@@ -15,11 +15,10 @@ def get_data(input_file):
def cidr4_to_node(cidr4: str) -> Node:
ip_address, mask_len = cidr4.strip().split("/")
mask_len = int(mask_len)
a, b, c, d = list(map(int, ip_address.split(".")))
ip = a * 256**3 + b * 256**2 + c * 256**1 + d * 256**0
added_ips_number = 0
return ip, mask_len, added_ips_number
mask_len = int(mask_len)
return ip, mask_len
def sort_nodes(nodes: list[Node]) -> list[Node]:
@@ -39,8 +38,8 @@ def get_parent_ip(ip: int, mask_len: int) -> int:
def make_parent(a: Node, b: Node) -> Node:
ip, mask_len, added_ips_number = None
return ip, mask_len, added_ips_number
ip, mask_len = 0, 0
return ip, mask_len
def make_cidr4(ip, mask_len) -> str: