示例#1
0
def test_one_edge(concomp):
    msg = "{} failed".format(concomp.__name__)

    g = Graph()

    g.add_edge(0, 1)

    cc = concomp(g)

    assert len(cc) == 2, msg
    assert cc[0] == cc[1], msg
示例#2
0
def test_two_disjoint_edges(concomp):
    msg = "{} failed".format(concomp.__name__)

    g = Graph()

    g.add_edge(0, 1)
    g.add_edge(2, 3)

    cc = concomp(g)

    assert len(cc) == 4
    assert cc[0] == cc[1]
    assert cc[2] == cc[3]
    assert cc[0] != cc[2]
示例#3
0
def test_simple_chain(concomp, n):
    assert n > 1

    msg = "{} failed".format(concomp.__name__)

    g = Graph()

    for i in range(n):
        g.add_edge(i, i + 1)

    cc = concomp(g)

    assert len(cc) == n + 1

    for i in range(n):
        assert cc[i] == cc[i + 1], msg
示例#4
0
class TestGraph:
    def setup(self):
        self.g = Graph()

    def test_add_edge(self):
        self.g.add_edge(0, 1)

        for i in range(2):
            assert len(self.g[i]) == 1, len(self.g[i])

    def test_add_edge_loop(self):
        for i in range(10):
            self.g.add_edge(i, i + 1)

        for i in range(1, 9):
            assert len(self.g[i]) == 2, len(self.g[i])

        for i in [0, 10]:
            assert len(self.g[i]) == 1, len(self.g[i])

    def test_del_edge(self):
        self.g.add_edge(0, 1)
        for i in [0, 1]:
            assert len(self.g[i]) == 1, len(self.g[i])

        self.g.del_edge(0, 1)
        for i in [0, 1]:
            assert len(self.g[i]) == 0, len(self.g[i])

    def test_del_edge_nonexistent(self):
        self.g.del_edge(0, 1)
        assert True

    def test_del_edge_multiple(self):
        for i in range(3):
            self.g.add_edge(0, 1)

        self.g.del_edge(0, 1)

        for i in range(2):
            assert len(self.g[i]) == 0, len(self.g[i])