Download .venv/Lib/site-packages/networkx/generators/tests/test_directed.py from DrDavis/PythonProject1: direct link, hf CLI and curl.
- Browser
- Download file 5.26 kB
-
https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/networkx/generators/tests/test_directed.py
- Command line
-
hf download hf://DrDavis/PythonProject1/.venv/Lib/site-packages/networkx/generators/tests/test_directed.py
-
curl -L -o test_directed.py https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/networkx/generators/tests/test_directed.py
5.26 kB
| """Generators - Directed Graphs | |
| ---------------------------- | |
| """ | |
| import pytest | |
| import networkx as nx | |
| from networkx.classes import Graph, MultiDiGraph | |
| from networkx.generators.directed import ( | |
| gn_graph, | |
| gnc_graph, | |
| gnr_graph, | |
| random_k_out_graph, | |
| random_uniform_k_out_graph, | |
| scale_free_graph, | |
| ) | |
| class TestGeneratorsDirected: | |
| def test_smoke_test_random_graphs(self): | |
| gn_graph(100) | |
| gnr_graph(100, 0.5) | |
| gnc_graph(100) | |
| scale_free_graph(100) | |
| gn_graph(100, seed=42) | |
| gnr_graph(100, 0.5, seed=42) | |
| gnc_graph(100, seed=42) | |
| scale_free_graph(100, seed=42) | |
| def test_create_using_keyword_arguments(self): | |
| pytest.raises(nx.NetworkXError, gn_graph, 100, create_using=Graph()) | |
| pytest.raises(nx.NetworkXError, gnr_graph, 100, 0.5, create_using=Graph()) | |
| pytest.raises(nx.NetworkXError, gnc_graph, 100, create_using=Graph()) | |
| G = gn_graph(100, seed=1) | |
| MG = gn_graph(100, create_using=MultiDiGraph(), seed=1) | |
| assert sorted(G.edges()) == sorted(MG.edges()) | |
| G = gnr_graph(100, 0.5, seed=1) | |
| MG = gnr_graph(100, 0.5, create_using=MultiDiGraph(), seed=1) | |
| assert sorted(G.edges()) == sorted(MG.edges()) | |
| G = gnc_graph(100, seed=1) | |
| MG = gnc_graph(100, create_using=MultiDiGraph(), seed=1) | |
| assert sorted(G.edges()) == sorted(MG.edges()) | |
| G = scale_free_graph( | |
| 100, | |
| alpha=0.3, | |
| beta=0.4, | |
| gamma=0.3, | |
| delta_in=0.3, | |
| delta_out=0.1, | |
| initial_graph=nx.cycle_graph(4, create_using=MultiDiGraph), | |
| seed=1, | |
| ) | |
| pytest.raises(ValueError, scale_free_graph, 100, 0.5, 0.4, 0.3) | |
| pytest.raises(ValueError, scale_free_graph, 100, alpha=-0.3) | |
| pytest.raises(ValueError, scale_free_graph, 100, beta=-0.3) | |
| pytest.raises(ValueError, scale_free_graph, 100, gamma=-0.3) | |
| def test_parameters(self): | |
| G = nx.DiGraph() | |
| G.add_node(0) | |
| def kernel(x): | |
| return x | |
| assert nx.is_isomorphic(gn_graph(1), G) | |
| assert nx.is_isomorphic(gn_graph(1, kernel=kernel), G) | |
| assert nx.is_isomorphic(gnc_graph(1), G) | |
| assert nx.is_isomorphic(gnr_graph(1, 0.5), G) | |
| def test_scale_free_graph_negative_delta(): | |
| with pytest.raises(ValueError, match="delta_in must be >= 0."): | |
| scale_free_graph(10, delta_in=-1) | |
| with pytest.raises(ValueError, match="delta_out must be >= 0."): | |
| scale_free_graph(10, delta_out=-1) | |
| def test_non_numeric_ordering(): | |
| G = MultiDiGraph([("a", "b"), ("b", "c"), ("c", "a")]) | |
| s = scale_free_graph(3, initial_graph=G) | |
| assert len(s) == 3 | |
| assert len(s.edges) == 3 | |
| def test_scale_free_graph_initial_graph_kwarg(ig): | |
| with pytest.raises(nx.NetworkXError): | |
| scale_free_graph(100, initial_graph=ig) | |
| class TestRandomKOutGraph: | |
| """Unit tests for the | |
| :func:`~networkx.generators.directed.random_k_out_graph` function. | |
| """ | |
| def test_regularity(self): | |
| """Tests that the generated graph is `k`-out-regular.""" | |
| n = 10 | |
| k = 3 | |
| alpha = 1 | |
| G = random_k_out_graph(n, k, alpha) | |
| assert all(d == k for v, d in G.out_degree()) | |
| G = random_k_out_graph(n, k, alpha, seed=42) | |
| assert all(d == k for v, d in G.out_degree()) | |
| def test_no_self_loops(self): | |
| """Tests for forbidding self-loops.""" | |
| n = 10 | |
| k = 3 | |
| alpha = 1 | |
| G = random_k_out_graph(n, k, alpha, self_loops=False) | |
| assert nx.number_of_selfloops(G) == 0 | |
| def test_negative_alpha(self): | |
| with pytest.raises(ValueError, match="alpha must be positive"): | |
| random_k_out_graph(10, 3, -1) | |
| class TestUniformRandomKOutGraph: | |
| """Unit tests for the | |
| :func:`~networkx.generators.directed.random_uniform_k_out_graph` | |
| function. | |
| """ | |
| def test_regularity(self): | |
| """Tests that the generated graph is `k`-out-regular.""" | |
| n = 10 | |
| k = 3 | |
| G = random_uniform_k_out_graph(n, k) | |
| assert all(d == k for v, d in G.out_degree()) | |
| G = random_uniform_k_out_graph(n, k, seed=42) | |
| assert all(d == k for v, d in G.out_degree()) | |
| def test_no_self_loops(self): | |
| """Tests for forbidding self-loops.""" | |
| n = 10 | |
| k = 3 | |
| G = random_uniform_k_out_graph(n, k, self_loops=False) | |
| assert nx.number_of_selfloops(G) == 0 | |
| assert all(d == k for v, d in G.out_degree()) | |
| def test_with_replacement(self): | |
| n = 10 | |
| k = 3 | |
| G = random_uniform_k_out_graph(n, k, with_replacement=True) | |
| assert G.is_multigraph() | |
| assert all(d == k for v, d in G.out_degree()) | |
| n = 10 | |
| k = 9 | |
| G = random_uniform_k_out_graph(n, k, with_replacement=False, self_loops=False) | |
| assert nx.number_of_selfloops(G) == 0 | |
| assert all(d == k for v, d in G.out_degree()) | |
| def test_without_replacement(self): | |
| n = 10 | |
| k = 3 | |
| G = random_uniform_k_out_graph(n, k, with_replacement=False) | |
| assert not G.is_multigraph() | |
| assert all(d == k for v, d in G.out_degree()) | |