コード例 #1
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_directed_vertex_not_part_of_edge(self):
        """ A directed vertex should not be able add an edge which doesn't have
            it as a vertex """
        v0 = DirectedVertex(val='v0')
        v1 = DirectedVertex(val='v1')
        v2 = DirectedVertex(val='v2')
        e12 = DirectedEdge((v1, v2))

        with self.assertRaises(ValueError):
            v0.add_edge(e12)
コード例 #2
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_directed_vertex_add_edge(self):
        """ Add an edge to a directed vertex """
        v0 = DirectedVertex(val='v0')
        v1 = DirectedVertex(val='v1')
        v2 = DirectedVertex(val='v2')
        e01 = DirectedEdge((v0, v1))
        e10 = DirectedEdge((v1, v0))
        e02 = DirectedEdge((v0, v2))
        v0.add_edge(e01)

        self.assertTrue(e01 in v0)
        self.assertFalse(e10 in v0)
        self.assertFalse(e02 in v0)
コード例 #3
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_directed_vertex_outs_and_ins_and_degrees(self):
        """ Get directed vertices' outs, ins, out_degree, and in_degree
            properties """
        v0 = DirectedVertex(val='v0')
        v1 = DirectedVertex(val='v1')
        v2 = DirectedVertex(val='v2')
        e00 = DirectedEdge((v0, v0))
        e01 = DirectedEdge((v0, v1))
        e02 = DirectedEdge((v0, v2))
        e10 = DirectedEdge((v1, v0))
        v0.add_edge(e00)
        v0.add_edge(e01)
        v0.add_edge(e02)
        v0.add_edge(e10)

        self.assertEqual(set(v0.outs), set([v0, v1, v2]))
        self.assertEqual(set(v0.ins), set([v0, v1]))
        self.assertEqual(v0.out_degree, 3)
        self.assertEqual(v0.in_degree, 2)
        self.assertEqual(v0.degree, 5)
コード例 #4
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_directed_vertex_remove_edge(self):
        """ Remove an edge from a directed vertex """
        v0 = DirectedVertex(val='v0')
        v1 = DirectedVertex(val='v1')
        v2 = DirectedVertex(val='v2')
        e01 = DirectedEdge((v0, v1))
        e10 = DirectedEdge((v1, v0))
        e02 = DirectedEdge((v0, v2))
        v0.add_edge(e01)
        v0.add_edge(e10)
        v0.add_edge(e02)

        v0.remove_edge(e01)

        self.assertFalse(e01 in v0)
        self.assertTrue(e10 in v0)
        self.assertTrue(e02 in v0)

        v0.remove_edge(e02)

        self.assertFalse(e01 in v0)
        self.assertTrue(e10 in v0)
        self.assertFalse(e02 in v0)
コード例 #5
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_directed_vertex_edges(self):
        """ Get a directed vertex's edges property """
        v0 = DirectedVertex(val='v0')
        v1 = DirectedVertex(val='v1')
        v2 = DirectedVertex(val='v2')
        e00 = DirectedEdge((v0, v0))
        e01 = DirectedEdge((v0, v1))
        e20 = DirectedEdge((v2, v0))
        v0.add_edge(e00)
        v0.add_edge(e01)
        v1.add_edge(e01)
        v0.add_edge(e20)
        v2.add_edge(e20)

        self.assertEqual(set(v0.edges), set([e00, e01, e20]))
        self.assertEqual(set(v1.edges), set([e01]))
        self.assertEqual(set(v2.edges), set([e20]))
        with self.assertRaises(AttributeError):
            v0.edges = set()
コード例 #6
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_directed_vertex_already_has_edge(self):
        """ A directed vertex should not be able to add an edge that it already
            has """
        v0 = DirectedVertex(val='v0')
        v1 = DirectedVertex(val='v1')
        e01 = DirectedEdge((v0, v1))
        e10 = DirectedEdge((v1, v0))
        v0.add_edge(e01)

        with self.assertRaises(ValueError):
            v0.add_edge(e01)
        try:
            v1.add_edge(e01)
        except ValueError:
            self.fail("Adding the edge (v0, v1) to v0 should not stop the edge "
                      "(v0, v1) from being added to v1.")
        try:
            v0.add_edge(e10)
        except ValueError:
            self.fail("There should be no exception because (v1 -> v0) is a "
                      "different edge than (v0 -> v1) for a directed vertex.")