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
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)