File size: 1,915 Bytes
f911107 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
"""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)
|