Beispiel #1
0
 def addVertices(self, list_vertices=[]):
     """
         Add new vertices in the Graph if names are not used
         
         Optional parameters:
         list_vertices : a list of names for new vertices
     """
     existing_vertices = self.getVertices()
     for vertex in list_vertices:
         if type(vertex) == str:
             if not (vertex in existing_vertices):
                 newVertex = Vertices(vertex)
                 self.vertices.append(newVertex)
             else:
                 print("Error : " + vertex + " already exists.")
         else:
             print("Error : " + vertex + " must be a String.")
Beispiel #2
0
 def setUp(self):
     self.v1 = Vertex()
     self.v2 = Vertex()
     self.x = Vertex("x")
     self.another_x = Vertex("x")
     self.vertices = Vertices({self.v1, self.v2})
Beispiel #3
0
 def test_order(self):
     """A ordem de um conjunto de vértices é seu tamanho"""
     self.assertEqual(self.vertices.order(), 2)
     v = Vertices()
     self.assertEqual(v.order(), 0)
Beispiel #4
0
class TestVertices(unittest.TestCase):
    def setUp(self):
        self.v1 = Vertex()
        self.v2 = Vertex()
        self.x = Vertex("x")
        self.another_x = Vertex("x")
        self.vertices = Vertices({self.v1, self.v2})

    def test_order(self):
        """A ordem de um conjunto de vértices é seu tamanho"""
        self.assertEqual(self.vertices.order(), 2)
        v = Vertices()
        self.assertEqual(v.order(), 0)

    def test_valid_edge(self):
        """Uma aresta é válida se todas suas componentes pertencem a V"""
        e = Edge(self.v1, self.v2)
        e2 = Edge(self.v1, self.x)
        self.assertTrue(self.vertices.valid_edge(e))
        self.assertFalse(self.vertices.valid_edge(e2))

    def test_eq(self):
        """Dois conjuntos de vértices são iguais, não importa a ordem"""
        vs2 = Vertices({self.v2, self.v1})
        self.assertTrue(self.vertices == vs2)

    def test_eq_false(self):
        """Dois conjuntos de vértices não são iguais, se não possuem mesmos componentes"""
        vs2 = Vertices({self.v1, self.v2, Vertex()})
        self.assertFalse(self.vertices == vs2)

    def test_contains(self):
        """É possível utilizar o operador in e not in para verificar pertencimento"""
        self.assertTrue(self.v1 in self.vertices)
        self.assertTrue(self.v2 in self.vertices)
        self.assertTrue(self.x not in self.vertices)

    def test_subset(self):
        """É possível utilizar o operador <= para verificar se é subconjunto"""
        vs1 = Vertices({self.v1})
        vs2 = Vertices({self.v2})
        vs3 = Vertices({self.v1, self.v2, Vertex()})
        vigual = Vertices({self.v1, self.v2})
        self.assertTrue(vs1 <= self.vertices)
        self.assertTrue(vs2 <= self.vertices)
        self.assertTrue(vigual <= self.vertices)
        self.assertFalse(vs3 <= self.vertices)

    def test_isdisjoint(self):
        """Dois conjuntos distintos de vertices são disjuntos"""
        self.assertTrue(self.vertices.isdisjoint(Vertices({Vertex(), Vertex()})))

    def test_iterator(self):
        """É possível iterar sobre o conjunto de vértices"""
        i = 0
        for v in self.vertices:
            if i == 0:
                self.assertTrue(v == self.v1)
            if i == 1:
                self.assertTrue(v == self.v2)
            i = i + 1