コード例 #1
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_undirected_vertex_has_self_edge(self):
        """ Get an undirected vertex's has_self_edge property """
        v0 = UndirectedVertex(val='v0')
        v1 = UndirectedVertex(val='v1')
        v2 = UndirectedVertex(val='v2')
        e00 = UndirectedEdge((v0, v0))
        e01 = UndirectedEdge((v0, v1))
        e11 = UndirectedEdge((v1, v1))
        e02 = UndirectedEdge((v0, v2))
        v0.add_edge(e00)
        v0.add_edge(e01)
        v1.add_edge(e01)
        v0.add_edge(e02)
        v2.add_edge(e02)

        self.assertTrue(v0.has_self_edge)
        self.assertFalse(v1.has_self_edge)
        self.assertFalse(v2.has_self_edge)
        with self.assertRaises(AttributeError):
            v0.has_self_edge = True

        v1.add_edge(e11)
        v0.remove_edge(e00)

        self.assertFalse(v0.has_self_edge)
        self.assertTrue(v1.has_self_edge)
        self.assertFalse(v2.has_self_edge)
コード例 #2
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_undirected_vertex_not_part_of_edge(self):
        """ An undirected vertex should not be able add an edge which doesn't
            have it as a vertex """
        v0 = UndirectedVertex(val='v0')
        v1 = UndirectedVertex(val='v1')
        v2 = UndirectedVertex(val='v2')
        e12 = UndirectedEdge((v1, v2))

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

        self.assertTrue(e00 in v0)
        self.assertTrue(e01 in v0)
        self.assertTrue(e10 in v0)
        self.assertFalse(e02 in v0)
コード例 #4
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_undirected_vertex_neighbors_and_degree(self):
        """ Get undirected vertices' neighbors and degree properties """
        v0 = UndirectedVertex(val='v0')
        v1 = UndirectedVertex(val='v1')
        v2 = UndirectedVertex(val='v2')
        e00 = UndirectedEdge((v0, v0))
        e01 = UndirectedEdge((v0, v1))
        e02 = UndirectedEdge((v0, v2))
        v0.add_edge(e01)
        v0.add_edge(e02)

        self.assertEqual(set(v0.neighbors), set([v1, v2]))
        with self.assertRaises(AttributeError):
            v0.neighbors = set()
        self.assertEqual(v0.degree, 2)
        with self.assertRaises(AttributeError):
            v0.degree = 0

        v0.add_edge(e00)

        self.assertEqual(set(v0.neighbors), set([v0, v1, v2]))
        self.assertEqual(v0.degree, 4)
コード例 #5
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_undirected_vertex_remove_edge(self):
        """ Remove an edge from an undirected vertex """
        v0 = UndirectedVertex(val='v0')
        v1 = UndirectedVertex(val='v1')
        v2 = UndirectedVertex(val='v2')
        e01 = UndirectedEdge((v0, v1))
        e10 = UndirectedEdge((v1, v0))
        e02 = UndirectedEdge((v0, v2))
        v0.add_edge(e01)
        v0.add_edge(e02)

        v0.remove_edge(e01)

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

        v0.remove_edge(e02)

        self.assertFalse(e01 in v0)
        self.assertFalse(e10 in v0)
        self.assertFalse(e02 in v0)
コード例 #6
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_undirected_vertex_edges(self):
        """ Get an undirected vertex's edges property """
        v0 = UndirectedVertex(val='v0')
        v1 = UndirectedVertex(val='v1')
        v2 = UndirectedVertex(val='v2')
        e00 = UndirectedEdge((v0, v0))
        e01 = UndirectedEdge((v0, v1))
        e02 = UndirectedEdge((v0, v2))
        v0.add_edge(e00)
        v0.add_edge(e01)
        v1.add_edge(e01)
        v0.add_edge(e02)
        v2.add_edge(e02)

        self.assertEqual(set(v0.edges), set([e00, e01, e02]))
        self.assertEqual(set(v1.edges), set([e01]))
        self.assertEqual(set(v2.edges), set([e02]))
        with self.assertRaises(AttributeError):
            v0.edges = set()
コード例 #7
0
ファイル: test_vertex.py プロジェクト: tscizzle/graphpy
    def test_undirected_vertex_already_has_edge(self):
        """ An undirected vertex should not be able to add an edge that it
            already has """
        v0 = UndirectedVertex(val='v0')
        v1 = UndirectedVertex(val='v1')
        e01 = UndirectedEdge((v0, v1))
        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.")