12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- """Unit tests for the :mod:`networkx.generators.duplication` module.
- """
- import pytest
- from networkx.exception import NetworkXError
- from networkx.generators.duplication import (
- duplication_divergence_graph,
- partial_duplication_graph,
- )
- class TestDuplicationDivergenceGraph:
- """Unit tests for the
- :func:`networkx.generators.duplication.duplication_divergence_graph`
- function.
- """
- def test_final_size(self):
- G = duplication_divergence_graph(3, 1)
- assert len(G) == 3
- G = duplication_divergence_graph(3, 1, seed=42)
- assert len(G) == 3
- def test_probability_too_large(self):
- with pytest.raises(NetworkXError):
- duplication_divergence_graph(3, 2)
- def test_probability_too_small(self):
- with pytest.raises(NetworkXError):
- duplication_divergence_graph(3, -1)
- class TestPartialDuplicationGraph:
- """Unit tests for the
- :func:`networkx.generators.duplication.partial_duplication_graph`
- function.
- """
- def test_final_size(self):
- N = 10
- n = 5
- p = 0.5
- q = 0.5
- G = partial_duplication_graph(N, n, p, q)
- assert len(G) == N
- G = partial_duplication_graph(N, n, p, q, seed=42)
- assert len(G) == N
- def test_initial_clique_size(self):
- N = 10
- n = 10
- p = 0.5
- q = 0.5
- G = partial_duplication_graph(N, n, p, q)
- assert len(G) == n
- def test_invalid_initial_size(self):
- with pytest.raises(NetworkXError):
- N = 5
- n = 10
- p = 0.5
- q = 0.5
- G = partial_duplication_graph(N, n, p, q)
- def test_invalid_probabilities(self):
- N = 1
- n = 1
- for p, q in [(0.5, 2), (0.5, -1), (2, 0.5), (-1, 0.5)]:
- args = (N, n, p, q)
- pytest.raises(NetworkXError, partial_duplication_graph, *args)
|