aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/networkx/generators/tests/test_random_clustered.py
blob: 85066520ae59f1e9bec03327630276918d573fb2 (about) (plain)
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
import pytest

import networkx as nx


class TestRandomClusteredGraph:
    def test_custom_joint_degree_sequence(self):
        node = [1, 1, 1, 2, 1, 2, 0, 0]
        tri = [0, 0, 0, 0, 0, 1, 1, 1]
        joint_degree_sequence = zip(node, tri)
        G = nx.random_clustered_graph(joint_degree_sequence)
        assert G.number_of_nodes() == 8
        assert G.number_of_edges() == 7

    def test_tuple_joint_degree_sequence(self):
        G = nx.random_clustered_graph([(1, 2), (2, 1), (1, 1), (1, 1), (1, 1), (2, 0)])
        assert G.number_of_nodes() == 6
        assert G.number_of_edges() == 10

    def test_invalid_joint_degree_sequence_type(self):
        with pytest.raises(nx.NetworkXError, match="Invalid degree sequence"):
            nx.random_clustered_graph([[1, 1], [2, 1], [0, 1]])

    def test_invalid_joint_degree_sequence_value(self):
        with pytest.raises(nx.NetworkXError, match="Invalid degree sequence"):
            nx.random_clustered_graph([[1, 1], [1, 2], [0, 1]])

    def test_directed_graph_raises_error(self):
        with pytest.raises(nx.NetworkXError, match="Directed Graph not supported"):
            nx.random_clustered_graph(
                [(1, 2), (2, 1), (1, 1), (1, 1), (1, 1), (2, 0)],
                create_using=nx.DiGraph,
            )