Пример #1
0
def test_make_undirected():
    graph = Graph(True)
    graph.add_edge(0, 1)
    graph.add_edge(1, 0)
    graph.add_edge(1, 2)
    graph.add_edge(2, -1)
    g = graph.compressed()

    # First, test with no duplicates removed,
    g2 = make_undirected(g, remove_dups=False)

    assert g2.num_nodes == g.num_nodes
    assert g2.num_edges == 6
    assert g2.has_edge(0, 1)
    assert g2.has_edge(1, 0)
    assert g2.has_edge(1, 2)
    assert g2.has_edge(2, 1)

    # then with duplicates removed,
    g2 = make_undirected(g, remove_dups=True)

    assert g2.num_nodes == g.num_nodes
    assert g2.num_edges == 4
    assert g2.has_edge(0, 1)
    assert g2.has_edge(1, 0)
    assert g2.has_edge(1, 2)
    assert g2.has_edge(2, 1)

    # and finally with weights.
    g2, edge_w2 = make_undirected(g, remove_dups=True, calc_weights=True)

    assert g2.num_nodes == g.num_nodes
    assert g2.num_edges == 4
    assert g2.has_edge(0, 1)
    assert g2.has_edge(1, 0)
    assert g2.has_edge(1, 2)
    assert g2.has_edge(2, 1)
    assert edge_w2[g2.first_edge_id(0,1)] == 2
    assert edge_w2[g2.first_edge_id(1,0)] == 2
    assert edge_w2[g2.first_edge_id(1,2)] == 1
    assert edge_w2[g2.first_edge_id(2,1)] == 1
Пример #2
0
def test_make_undirected():
    graph = Graph(True)
    graph.add_edge(0, 1)
    graph.add_edge(1, 0)
    graph.add_edge(1, 2)
    graph.add_edge(2, -1)
    g = graph.compressed()

    # First, test with no duplicates removed,
    g2 = make_undirected(g, remove_dups=False)

    assert_equal(g2.num_nodes, g.num_nodes)
    assert_equal(g2.num_edges, 6)
    assert_true(g2.has_edge(0, 1))
    assert_true(g2.has_edge(1, 0))
    assert_true(g2.has_edge(1, 2))
    assert_true(g2.has_edge(2, 1))

    # then with duplicates removed,
    g2 = make_undirected(g, remove_dups=True)

    assert_equal(g2.num_nodes, g.num_nodes)
    assert_equal(g2.num_edges, 4)
    assert_true(g2.has_edge(0, 1))
    assert_true(g2.has_edge(1, 0))
    assert_true(g2.has_edge(1, 2))
    assert_true(g2.has_edge(2, 1))

    # and finally with weights.
    g2, edge_w2 = make_undirected(g, remove_dups=True, calc_weights=True)

    assert_equal(g2.num_nodes, g.num_nodes)
    assert_equal(g2.num_edges, 4)
    assert_true(g2.has_edge(0, 1))
    assert_true(g2.has_edge(1, 0))
    assert_true(g2.has_edge(1, 2))
    assert_true(g2.has_edge(2, 1))
    assert_equal(edge_w2[g2.first_edge_id(0, 1)], 2)
    assert_equal(edge_w2[g2.first_edge_id(1, 0)], 2)
    assert_equal(edge_w2[g2.first_edge_id(1, 2)], 1)
    assert_equal(edge_w2[g2.first_edge_id(2, 1)], 1)