Cidr4 merge algorithm #5

Merged
PavelPatsey merged 91 commits from CIDR4_merge_algorithm into main 2025-01-27 22:05:39 +03:00

91 Commits

Author SHA1 Message Date
Pavel Patsey 7024503699 add cosmetic changes 2025-01-26 19:10:21 +03:00
Pavel Patsey 37ffec0558 move util tests to their own file 2025-01-26 19:09:09 +03:00
Pavel Patsey 98583a7101 make the algorithm a little faster 2025-01-26 19:03:00 +03:00
Pavel Patsey be9d603bf8 add individual exceptions 2025-01-26 18:58:17 +03:00
Pavel Patsey 14c8e66f60 remove unnecessary function 2025-01-26 11:07:41 +03:00
Pavel Patsey 3e6c8525c4 remove unnecessary annotations 2025-01-26 11:05:19 +03:00
Pavel Patsey 6f745c2d61 remove unnecessary annotations 2025-01-26 11:04:23 +03:00
Pavel Patsey 0b56caffac fix tests after removing functions 2025-01-26 10:52:45 +03:00
Pavel Patsey a4991518ba move internal functions to the function where they are used 2025-01-26 10:48:08 +03:00
Pavel Patsey e0ecafa9d0 changed the order of functions 2025-01-26 10:45:05 +03:00
Pavel Patsey 52c5fb679e rename merge_nodes function to solution 2025-01-26 10:39:31 +03:00
Pavel Patsey 04b4d14a30 shorten variable names in merge_nodes function 2025-01-26 10:30:58 +03:00
Pavel Patsey fee38af690 shorten variable names in merge_two_nodes function 2025-01-26 10:27:55 +03:00
Pavel Patsey 731d77f0e3 shorten variable names in calc_dip function 2025-01-26 10:24:34 +03:00
Pavel Patsey fa9b4073b7 move how to launch algorithms info to the folder with algorithms 2025-01-26 10:04:37 +03:00
Pavel Patsey bc8ddf1be4 add insurance functions, delete raise exception from find_parent function 2025-01-25 10:28:03 +03:00
Pavel Patsey eccc03f48d add cosmetic changes (more comfortable work with arguments) 2025-01-25 10:15:42 +03:00
Pavel Patsey 735a3c0216 take into account the case when neighbors could remain 2025-01-24 14:01:47 +03:00
Pavel Patsey f9f711ca0b add insurance functions example 2025-01-24 13:49:00 +03:00
Pavel Patsey 811432a2f5 add cosmetic changes in merge_two_nodes 2025-01-24 13:34:47 +03:00
Pavel Patsey 75d400f52e add find subnets example 2025-01-24 13:30:37 +03:00
Pavel Patsey 6c43344893 make calc_dip faster 2025-01-24 12:13:55 +03:00
Pavel Patsey 68327db96c fix tests (delete sort_nodes from tests) 2025-01-24 11:59:35 +03:00
Pavel Patsey a160ffd3a2 add cosmetic changes 2025-01-24 11:38:17 +03:00
Pavel Patsey 7c8ecea980 delete sort nodes function 2025-01-24 11:36:34 +03:00
Pavel Patsey 55c71c6eb2 use functions from util 2025-01-24 11:35:03 +03:00
Pavel Patsey f40d47989a make similar output 2025-01-24 11:31:12 +03:00
Pavel Patsey d987b39bbd add merge_nodes function 2025-01-24 10:05:11 +03:00
Pavel Patsey 91d3556eee fix calc_dip, add merge_two_nodes 2025-01-23 18:34:13 +03:00
Pavel Patsey adc569af21 fix calc_dip 2025-01-23 10:20:36 +03:00
Pavel Patsey 474b6779d8 add calc_dip function 2025-01-23 10:15:30 +03:00
Pavel Patsey 81f741ee4e fix plan 2025-01-23 09:42:30 +03:00
Pavel Patsey 5a8f98041f correct mask recalculation when reducing its length 2025-01-22 23:27:47 +03:00
Pavel Patsey 725b80544a add find_parent function 2025-01-22 23:12:21 +03:00
Pavel Patsey faa2849e6b fix sort nodes test 2025-01-22 22:25:09 +03:00
Pavel Patsey d591470a0d correct the algorithm plan 2025-01-22 22:04:47 +03:00
Pavel Patsey 05c78ad399 delete added_ips_number info from node 2025-01-22 21:56:19 +03:00
Pavel Patsey c659e96d3f add cidr4_merger algorithm to the others 2025-01-22 21:47:31 +03:00
Pavel Patsey 3ff3843b58 delete unnecessary test data 2025-01-22 18:58:18 +03:00
Pavel Patsey 8229e91fe6 Merge pull request #7 from Fedor-Lyanguzov/cma-two-versions
Fast and precise algorithms, with tests
2025-01-22 18:49:05 +03:00
Pavel Patsey 6634643155 init new algorithm 2025-01-22 18:23:02 +03:00
Fedor Lyanguzov dfd6e21f2b Fast and precise algorithms, with tests 2025-01-22 18:21:39 +03:00
Pavel Patsey 2cab2c31a6 add current solution to archive before changes 2025-01-22 17:49:20 +03:00
Pavel Patsey 303ddee08f remove unnecessary copying of node list 2025-01-19 01:45:25 +03:00
Pavel Patsey 7600814772 add test merge_nodes recursion vs cycle 2025-01-19 01:24:08 +03:00
Pavel Patsey 39e99d24b6 add merge_nodes_cycle func 2025-01-19 01:00:01 +03:00
Pavel Patsey 8ce8ac6e1a rename prev merge_nodes func to merge_nodes_deprecated 2025-01-19 00:46:00 +03:00
Pavel Patsey 1d34eb92bd add working recursive merge algorithm 2025-01-19 00:42:13 +03:00
Pavel Patsey c5e20446be add merge_nodes_recursion test 2025-01-19 00:29:54 +03:00
Pavel Patsey 724e8f8471 add lift_lonely_node test 2025-01-19 00:27:42 +03:00
Pavel Patsey 71b5525c32 fix merge_neighbors and add merge_neighbors tests 2025-01-19 00:19:04 +03:00
Pavel Patsey 58c2b5cbe0 add fixtures for nodes and groups 2025-01-19 00:05:21 +03:00
Pavel Patsey 95fbdff75f add find_neighbours_singles function test 2025-01-18 23:54:00 +03:00
Pavel Patsey c56d09cfd9 extended the make_groups function test 2025-01-18 23:52:28 +03:00
Pavel Patsey a42f459db4 add test make_groups 2025-01-18 23:19:04 +03:00
Pavel Patsey feda229c78 add non-working recursive merge algorithm 2025-01-18 23:17:47 +03:00
Pavel Patsey af91a066a1 rename ip_str to ip_address 2025-01-18 20:24:04 +03:00
Pavel Patsey b5a1498a51 add parent_ip info to Node tuple 2025-01-18 20:15:21 +03:00
Pavel Patsey edcce93d01 rename test ips 2025-01-16 15:18:08 +03:00
Pavel Patsey a1dba6affb move tests to a separate file 2025-01-16 15:12:30 +03:00
Pavel Patsey dd90ad624a use tuple opening, use only necessary arguments in functions, delete data_to_nodes function 2025-01-16 14:08:38 +03:00
Pavel Patsey d1afaace68 fix tests 2025-01-16 12:42:18 +03:00
Pavel Patsey 048d4941e4 format by black and isort 2025-01-16 12:41:52 +03:00
Fedor Lyanguzov 5f0353d574 2025-01-12 обсуждение кода 2025-01-12 18:53:24 +03:00
Павел 5ef04aefdf cleanup 2025-01-12 00:00:33 +03:00
Павел 9d5c6b384a add algorithm 2025-01-11 23:59:29 +03:00
Павел c4c5940f8d cosmetic changes 2025-01-11 22:40:23 +03:00
Павел aa75fd7ba6 cleanup 2025-01-11 22:39:23 +03:00
Павел 5a4166095b add reduce_nodes function 2025-01-11 22:30:08 +03:00
Павел 020836d33d add sort_nodes func 2025-01-11 14:40:21 +03:00
Павел 3a5a195d3d add have_same_parent func 2025-01-11 09:45:35 +03:00
Павел 9377d23134 add convert data to nodes 2025-01-11 08:08:08 +03:00
Павел dfd02e3da5 add convert from cidr4 to node 2025-01-11 07:24:48 +03:00
Павел 9148b9be32 init new algorithm 2025-01-11 07:00:22 +03:00
Павел 113b651167 speed up remove_ips_with_subnets function 2025-01-09 14:19:00 +03:00
Павел 99da7ea726 cleanup 2025-01-09 13:46:59 +03:00
Павел 722bd5a751 add remove_ips_with_subnets function and really fix merge functions 2025-01-09 13:00:37 +03:00
Павел 7d89eee92f fix rough_merge_binaries funс, previously the function returned networks and subnets 2025-01-09 01:09:29 +03:00
Павел d514d4f5e0 added smooth_merge_binaries function 2025-01-08 23:13:57 +03:00
Павел fab8786ff8 cleanup 2025-01-08 22:30:13 +03:00
Павел 604861aa80 refactoring: represent binary ip as a string of length 32 2025-01-08 22:29:17 +03:00
Павел ddcb043caa refactoring: represent binary as a string of vlsm length 2025-01-08 21:16:00 +03:00
Павел 44893da6a8 fix merge conflicts 2025-01-08 19:25:28 +03:00
Павел bb269f380a add rough_merge_ips function 2025-01-08 19:21:44 +03:00
Fedor Lyanguzov 8b2727ca38 Test intersecting cidrs will combine 2025-01-08 13:18:58 +03:00
Павел c9c53941ee add reduce_bin_ip function 2025-01-08 12:38:06 +03:00
Павел 76f2710f70 fix cidr4_to_binary function 2025-01-08 12:20:22 +03:00
Павел f7156fb61d added convert functions 2025-01-08 12:16:13 +03:00
Павел 2a4418fccc added cidr list merge algorithm 2025-01-07 17:35:23 +03:00
Павел e901b4e528 init cidr4_merger 2025-01-07 13:28:07 +03:00
Павел 1895a112b0 add .idea to gitignore 2025-01-07 12:55:49 +03:00