summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoss Barnowski <rossbar@berkeley.edu>2023-05-13 06:53:56 -0700
committerGitHub <noreply@github.com>2023-05-13 15:53:56 +0200
commita15284af1a504ff5c9095222049a17d21ae7d812 (patch)
tree4b7a0c5b1c55d26f16a46959df5bbdfb26a3de75
parent797638345d3a31cd4fff8570a8df07d31e90022e (diff)
downloadnetworkx-a15284af1a504ff5c9095222049a17d21ae7d812.tar.gz
Example of improving test granularity related to #5092 (#5094)
extract and parametrize watts_strogatz tests.
-rw-r--r--networkx/generators/tests/test_random_graphs.py59
1 files changed, 36 insertions, 23 deletions
diff --git a/networkx/generators/tests/test_random_graphs.py b/networkx/generators/tests/test_random_graphs.py
index 4edadecd..f9d0d77d 100644
--- a/networkx/generators/tests/test_random_graphs.py
+++ b/networkx/generators/tests/test_random_graphs.py
@@ -101,29 +101,6 @@ class TestGeneratorsRandom:
G = nx.gnm_random_graph(100, 20, seed, directed=True)
G = nx.dense_gnm_random_graph(100, 20, seed)
- G = nx.watts_strogatz_graph(10, 2, 0.25, seed)
- assert len(G) == 10
- assert G.number_of_edges() == 10
-
- G = nx.connected_watts_strogatz_graph(10, 2, 0.1, tries=10, seed=seed)
- assert len(G) == 10
- assert G.number_of_edges() == 10
- pytest.raises(
- nx.NetworkXError, nx.connected_watts_strogatz_graph, 10, 2, 0.1, tries=0
- )
-
- G = nx.watts_strogatz_graph(10, 4, 0.25, seed)
- assert len(G) == 10
- assert G.number_of_edges() == 20
-
- G = nx.newman_watts_strogatz_graph(10, 2, 0.0, seed)
- assert len(G) == 10
- assert G.number_of_edges() == 10
-
- G = nx.newman_watts_strogatz_graph(10, 4, 0.25, seed)
- assert len(G) == 10
- assert G.number_of_edges() >= 20
-
G = nx.barabasi_albert_graph(100, 1, seed)
G = nx.barabasi_albert_graph(100, 3, seed)
assert G.number_of_edges() == (97 * 3)
@@ -333,3 +310,39 @@ class TestGeneratorsRandom:
graph = nx.random_kernel_graph(1000, integral, root)
graph = nx.random_kernel_graph(1000, integral, root, seed=42)
assert len(graph) == 1000
+
+
+@pytest.mark.parametrize(
+ ("k", "expected_num_nodes", "expected_num_edges"),
+ [
+ (2, 10, 10),
+ (4, 10, 20),
+ ],
+)
+def test_watts_strogatz(k, expected_num_nodes, expected_num_edges):
+ G = nx.watts_strogatz_graph(10, k, 0.25, seed=42)
+ assert len(G) == expected_num_nodes
+ assert G.number_of_edges() == expected_num_edges
+
+
+def test_newman_watts_strogatz_zero_probability():
+ G = nx.newman_watts_strogatz_graph(10, 2, 0.0, seed=42)
+ assert len(G) == 10
+ assert G.number_of_edges() == 10
+
+
+def test_newman_watts_strogatz_nonzero_probability():
+ G = nx.newman_watts_strogatz_graph(10, 4, 0.25, seed=42)
+ assert len(G) == 10
+ assert G.number_of_edges() >= 20
+
+
+def test_connected_watts_strogatz():
+ G = nx.connected_watts_strogatz_graph(10, 2, 0.1, tries=10, seed=42)
+ assert len(G) == 10
+ assert G.number_of_edges() == 10
+
+
+def test_connected_watts_strogatz_zero_tries():
+ with pytest.raises(nx.NetworkXError, match="Maximum number of tries exceeded"):
+ nx.connected_watts_strogatz_graph(10, 2, 0.1, tries=0)