def test_complete():
    g = create_graph(directed=False,
                     allowing_self_loops=False,
                     allowing_multiple_edges=False,
                     weighted=True)
    generators.complete_graph(g, 10)
    assert len(g.vertices()) == 10
Example #2
0
def test_non_planar():
    g = create_graph(directed=False,
                     allowing_self_loops=False,
                     allowing_multiple_edges=False,
                     weighted=False)
    generators.complete_graph(g, 5)

    res, aux = planar.is_planar(g)

    assert res == False
    assert aux.vertices() == set([0, 1, 2, 3, 4])
Example #3
0
def build_graph():
    g = create_graph(directed=False,
                     allowing_self_loops=False,
                     allowing_multiple_edges=False,
                     weighted=True)
    complete_graph(g, 8)

    rng = Random(17)

    for e in g.edges():
        g.set_edge_weight(e, rng.randint(0, 10))

    return g
def test_complete_property_graph():

    # Test that changes performed by the generators in the 
    # backend graph are propagated to the property graph.

    g = create_graph(
        directed=False,
        allowing_self_loops=False,
        allowing_multiple_edges=False,
        weighted=True,
        any_hashable=True,
    )

    generators.complete_graph(g, 10)
    assert len(g.vertices) == 10
Example #5
0
def build_anyhashableg_graph():
    g = create_graph(directed=False,
                     allowing_self_loops=False,
                     allowing_multiple_edges=False,
                     weighted=True,
                     any_hashable=True,
                     vertex_supplier=create_vertex_supplier(type='int'))
    complete_graph(g, 8)

    rng = Random(17)

    for e in g.edges:
        g.set_edge_weight(e, rng.randint(0, 10))

    return g
Example #6
0
def test_anyhashableg_non_planar():
    g = create_graph(
        directed=False,
        allowing_self_loops=False,
        allowing_multiple_edges=False,
        weighted=False,
        any_hashable=True,
    )
    generators.complete_graph(g, 5)

    g.add_vertex("extra")

    res, kuratowski = planar.is_planar(g)

    assert res == False
    assert kuratowski.vertices == set(g.vertices).difference({"extra"})
def test_listenable_property_graph():

    g = create_graph(
        directed=True,
        allowing_self_loops=True,
        allowing_multiple_edges=True,
        weighted=True,
        any_hashable=True,
        vertex_supplier=create_vertex_supplier(),
        edge_supplier=create_edge_supplier(),
    )

    vertices = []

    def listener(element, event):
        if event == GraphEvent.VERTEX_ADDED:
            vertices.append(element)

    g.add_listener(listener)

    complete_graph(g, 5)

    assert vertices == ["v0", "v1", "v2", "v3", "v4"]
Example #8
0
# %%
# Start by importing the package.

import jgrapht
from jgrapht.generators import complete_graph
from jgrapht.io.exporters import generate_json

# %%
# Let us create an undirected graph

g = jgrapht.create_graph(directed=False)

# %%
# and use the complete generator to populate the graph,

complete_graph(g, 5)

print(g)

# %%
# We will export the graph to string in JSON format.

output = generate_json(g)
print(output)

# %%
# Let us also export the graph using some custom attributes.

vertex_attrs = {}
for v in g.vertices:
    vertex_attrs[v] = {}