Download .venv/Lib/site-packages/networkx/algorithms/tests/test_broadcasting.py from DrDavis/PythonProject1: direct link, hf CLI and curl.
- Browser
- Download file 2.02 kB
-
https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/networkx/algorithms/tests/test_broadcasting.py
- Command line
-
hf download hf://DrDavis/PythonProject1/.venv/Lib/site-packages/networkx/algorithms/tests/test_broadcasting.py
-
curl -L -o test_broadcasting.py https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/networkx/algorithms/tests/test_broadcasting.py
2.02 kB
| """Unit tests for the broadcasting module.""" | |
| import math | |
| import networkx as nx | |
| def test_example_tree_broadcast(): | |
| """ | |
| Test the BROADCAST algorithm on the example in the paper titled: "Information Dissemination in Trees" | |
| """ | |
| edge_list = [ | |
| (0, 1), | |
| (1, 2), | |
| (2, 7), | |
| (3, 4), | |
| (5, 4), | |
| (4, 7), | |
| (6, 7), | |
| (7, 9), | |
| (8, 9), | |
| (9, 13), | |
| (13, 14), | |
| (14, 15), | |
| (14, 16), | |
| (14, 17), | |
| (13, 11), | |
| (11, 10), | |
| (11, 12), | |
| (13, 18), | |
| (18, 19), | |
| (18, 20), | |
| ] | |
| G = nx.Graph(edge_list) | |
| b_T, b_C = nx.tree_broadcast_center(G) | |
| assert b_T == 6 | |
| assert b_C == {13, 9} | |
| # test broadcast time from specific vertex | |
| assert nx.tree_broadcast_time(G, 17) == 8 | |
| assert nx.tree_broadcast_time(G, 3) == 9 | |
| # test broadcast time of entire tree | |
| assert nx.tree_broadcast_time(G) == 10 | |
| def test_path_broadcast(): | |
| for i in range(2, 12): | |
| G = nx.path_graph(i) | |
| b_T, b_C = nx.tree_broadcast_center(G) | |
| assert b_T == math.ceil(i / 2) | |
| assert b_C == { | |
| math.ceil(i / 2), | |
| math.floor(i / 2), | |
| math.ceil(i / 2 - 1), | |
| math.floor(i / 2 - 1), | |
| } | |
| assert nx.tree_broadcast_time(G) == i - 1 | |
| def test_empty_graph_broadcast(): | |
| H = nx.empty_graph(1) | |
| b_T, b_C = nx.tree_broadcast_center(H) | |
| assert b_T == 0 | |
| assert b_C == {0} | |
| assert nx.tree_broadcast_time(H) == 0 | |
| def test_star_broadcast(): | |
| for i in range(4, 12): | |
| G = nx.star_graph(i) | |
| b_T, b_C = nx.tree_broadcast_center(G) | |
| assert b_T == i | |
| assert b_C == set(G.nodes()) | |
| assert nx.tree_broadcast_time(G) == b_T | |
| def test_binomial_tree_broadcast(): | |
| for i in range(2, 8): | |
| G = nx.binomial_tree(i) | |
| b_T, b_C = nx.tree_broadcast_center(G) | |
| assert b_T == i | |
| assert b_C == {0, 2 ** (i - 1)} | |
| assert nx.tree_broadcast_time(G) == 2 * i - 1 | |