summaryrefslogtreecommitdiff
path: root/networkx/algorithms/approximation/tests/test_ramsey.py
blob: 32fe1fb8fa917c557954d9da0d960895a6953a11 (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
import networkx as nx
import networkx.algorithms.approximation as apxa


def test_ramsey():
    # this should only find the complete graph
    graph = nx.complete_graph(10)
    c, i = apxa.ramsey_R2(graph)
    cdens = nx.density(graph.subgraph(c))
    assert cdens == 1.0, "clique not correctly found by ramsey!"
    idens = nx.density(graph.subgraph(i))
    assert idens == 0.0, "i-set not correctly found by ramsey!"

    # this trivial graph has no cliques. should just find i-sets
    graph = nx.trivial_graph()
    c, i = apxa.ramsey_R2(graph)
    assert c == {0}, "clique not correctly found by ramsey!"
    assert i == {0}, "i-set not correctly found by ramsey!"

    graph = nx.barbell_graph(10, 5, nx.Graph())
    c, i = apxa.ramsey_R2(graph)
    cdens = nx.density(graph.subgraph(c))
    assert cdens == 1.0, "clique not correctly found by ramsey!"
    idens = nx.density(graph.subgraph(i))
    assert idens == 0.0, "i-set not correctly found by ramsey!"

    # add self-loops and test again
    graph.add_edges_from([(n, n) for n in range(0, len(graph), 2)])
    cc, ii = apxa.ramsey_R2(graph)
    assert cc == c
    assert ii == i