Beispiel #1
0
 def test_graph_single_edge(self):
     G = nx.Graph()
     G.add_edge(0, 1)
     assert nx.is_edge_cover(G, {(0, 0), (1, 1)})
     assert nx.is_edge_cover(G, {(0, 1), (1, 0)})
     assert nx.is_edge_cover(G, {(0, 1)})
     assert not nx.is_edge_cover(G, {(0, 0)})
Beispiel #2
0
 def test_graph_single_edge(self):
     G = nx.Graph()
     G.add_edge(0, 1)
     assert_true(nx.is_edge_cover(G, {(0, 0), (1, 1)}))
     assert_true(nx.is_edge_cover(G, {(0, 1), (1, 0)}))
     assert_true(nx.is_edge_cover(G, {(0, 1)}))
     assert_false(nx.is_edge_cover(G, {(0, 0)}))
Beispiel #3
0
 def test_graph_single_edge(self):
     G = nx.Graph()
     G.add_edge(0, 1)
     assert_true(nx.is_edge_cover(G, {(0, 0), (1, 1)}))
     assert_true(nx.is_edge_cover(G, {(0, 1), (1, 0)}))
     assert_true(nx.is_edge_cover(G, {(0, 1)}))
     assert_false(nx.is_edge_cover(G, {(0, 0)}))
Beispiel #4
0
 def test_bipartite_explicit(self):
     G = nx.Graph()
     G.add_nodes_from([1, 2, 3, 4], bipartite=0)
     G.add_nodes_from(["a", "b", "c"], bipartite=1)
     G.add_edges_from([(1, "a"), (1, "b"), (2, "b"), (2, "c"), (3, "c"), (4, "a")])
     min_cover = bipartite.min_edge_cover(G, bipartite.eppstein_matching)
     assert nx.is_edge_cover(G, min_cover)
     assert len(min_cover) == 8
Beispiel #5
0
 def test_bipartite_default(self):
     G = nx.Graph()
     G.add_nodes_from([1, 2, 3, 4], bipartite=0)
     G.add_nodes_from(['a', 'b', 'c'], bipartite=1)
     G.add_edges_from([(1, 'a'), (1, 'b'), (2, 'b'),
                       (2, 'c'), (3, 'c'), (4, 'a')])
     min_cover = bipartite.min_edge_cover(G)
     assert nx.is_edge_cover(G, min_cover)
     assert len(min_cover) == 8
Beispiel #6
0
 def test_bipartite_default(self):
     G = nx.Graph()
     G.add_nodes_from([1, 2, 3, 4], bipartite=0)
     G.add_nodes_from(['a', 'b', 'c'], bipartite=1)
     G.add_edges_from([(1, 'a'), (1, 'b'), (2, 'b'),
                       (2, 'c'), (3, 'c'), (4, 'a')])
     min_cover = bipartite.min_edge_cover(G)
     assert_true(nx.is_edge_cover(G, min_cover))
     assert_equal(len(min_cover), 8)
 def test_bipartite_explicit(self):
     G = nx.Graph()
     G.add_nodes_from([1, 2, 3, 4], bipartite=0)
     G.add_nodes_from(['a', 'b', 'c'], bipartite=1)
     G.add_edges_from([(1, 'a'), (1, 'b'), (2, 'b'), (2, 'c'), (3, 'c'),
                       (4, 'a')])
     min_cover = bipartite.min_edge_cover(G, bipartite.eppstein_matching)
     assert_true(nx.is_edge_cover(G, min_cover))
     assert_equal(len(min_cover), 8)
Beispiel #8
0
 def test_bipartite_explicit(self):
     G = nx.Graph()
     G.add_nodes_from([1, 2, 3, 4], bipartite=0)
     G.add_nodes_from(['a', 'b', 'c'], bipartite=1)
     G.add_edges_from([(1, 'a'), (1, 'b'), (2, 'b'),
                       (2, 'c'), (3, 'c'), (4, 'a')])
     min_cover = nx.min_edge_cover(G, nx.algorithms.bipartite.matching.
                                   eppstein_matching)
     assert_true(nx.is_edge_cover(G, min_cover))
     assert_equal(len(min_cover), 8)
Beispiel #9
0
 def test_bipartite_explicit(self):
     G = nx.Graph()
     G.add_nodes_from([1, 2, 3, 4], bipartite=0)
     G.add_nodes_from(['a', 'b', 'c'], bipartite=1)
     G.add_edges_from([(1, 'a'), (1, 'b'), (2, 'b'), (2, 'c'), (3, 'c'),
                       (4, 'a')])
     min_cover = nx.min_edge_cover(
         G, nx.algorithms.bipartite.matching.eppstein_matching)
     min_cover2 = nx.min_edge_cover(G)
     assert nx.is_edge_cover(G, min_cover)
     assert len(min_cover) == 8
Beispiel #10
0
 def test_complete_graph(self):
     G = nx.complete_graph(10)
     min_cover = nx.min_edge_cover(G)
     assert_true(nx.is_edge_cover(G, min_cover))
     assert_equal(len(min_cover), 5)
Beispiel #11
0
 def test_graph_with_loop(self):
     G = nx.Graph()
     G.add_edge(1, 1)
     assert_true(nx.is_edge_cover(G, {(1, 1)}))
Beispiel #12
0
 def test_empty_graph(self):
     G = nx.Graph()
     assert_true(nx.is_edge_cover(G, set()))
Beispiel #13
0
 def test_complete_graph(self):
     G = nx.complete_graph(10)
     min_cover = nx.min_edge_cover(G)
     assert_true(nx.is_edge_cover(G, min_cover))
     assert_equal(len(min_cover), 5)
Beispiel #14
0
 def test_graph_with_loop(self):
     G = nx.Graph()
     G.add_edge(1, 1)
     assert_true(nx.is_edge_cover(G, {(1, 1)}))
Beispiel #15
0
 def test_empty_graph(self):
     G = nx.Graph()
     assert_true(nx.is_edge_cover(G, set()))
Beispiel #16
0
    total_weight = df["Match Score"].sum()

    for idx, row in df.iterrows():
        if row["From"] != row["To"]:
            G.add_edge(
                row["From"],
                row["To"],
                weight=(row["Match Score"] /
                        total_weight if total_weight else 1.0 / len(df)))

    edges = list(
        sorted(G.edges(data=True), key=lambda t: t[2].get('weight', 1)))

    test = set()
    while not nx.is_edge_cover(G, test):
        subject = edges[len(test)]
        test.add((subject[0], subject[1]))

    out.append({
        "Metric": metric,
        "Sample": sample,
        "Sorted Cover Size": len(test),
    })

outfile = kn.pack({
    'title':
    kn.unpack(dataframe_filename)['title'] + "-stats",
    'bitweight':
    kn.unpack(dataframe_filename)['bitweight'],
    'seed':
Beispiel #17
0
 def test_complete_graph(self):
     G = nx.complete_graph(10)
     min_cover = nx.min_edge_cover(G)
     assert nx.is_edge_cover(G, min_cover)
     assert len(min_cover) == 5