예제 #1
0
    def test_busca_em_largura_nao_encontrou(self):
        grafo = GrafoDirigido(('a', 'b', 'c', 'd', 'e', 'f'))
        grafo.conecta('a', 'b')
        grafo.conecta('a', 'c')
        grafo.conecta('b', 'c')
        grafo.conecta('c', 'd')
        grafo.conecta('c', 'e')

        self.assertEqual(grafo.busca_em_largura('a', 'f'), None)
        self.assertEqual(grafo.busca_em_largura('c', 'b'), None)
예제 #2
0
    def test_busca_em_profundidade_encontrou(self):
        grafo = GrafoDirigido(('a', 'b', 'c', 'd', 'e', 'f'))
        grafo.conecta('a', 'b')
        grafo.conecta('a', 'c')
        grafo.conecta('b', 'c')
        grafo.conecta('c', 'd')
        grafo.conecta('c', 'e')
        grafo.conecta('e', 'f')

        self.assertEqual(grafo.busca_em_profundidade('a', 'd'), ['a', 'b', 'c', 'd'])
        self.assertEqual(grafo.busca_em_profundidade('a', 'f'), ['a', 'b', 'c', 'e', 'f'])
예제 #3
0
    def test_conecta(self):
        grafo = GrafoDirigido(('a', 'b'))

        self.assertFalse(grafo.possui_aresta('a', 'b'))
        self.assertFalse(grafo.possui_aresta('b', 'a'))

        grafo.conecta('a', 'b')
        
        self.assertTrue(grafo.possui_aresta('a', 'b'))
        self.assertFalse(grafo.possui_aresta('b', 'a'))
예제 #4
0
    def test_adiciona_no(self):
        grafo = GrafoDirigido()
        self.assertEqual(len(grafo.nos), 0)

        grafo.adiciona('a')
        self.assertEqual(len(grafo.nos), 1)

        grafo.adiciona('b')
        self.assertEqual(len(grafo.nos), 2)

        grafo2 = GrafoDirigido(('a', 'b'))
        self.assertEqual(len(grafo2.nos), 2)
예제 #5
0
    def test_peso(self):
        grafo = GrafoDirigido(('a', 'b', 'c'))

        grafo.conecta('a', 'b')
        self.assertTrue(grafo.peso('a', 'b'), 1)

        grafo.conecta('b', 'c', 3)
        self.assertTrue(grafo.peso('b', 'c'), 3)

        grafo.conecta('b', 'a', 7)
        self.assertTrue(grafo.peso('b', 'a'), 7)
        self.assertTrue(grafo.peso('b', 'c'), 3)
        self.assertTrue(grafo.peso('a', 'b'), 1)
예제 #6
0
    def test_ordenacao(self):
        grafo = GrafoDirigido(('a', 'b', 'c', 'd', 'e', 'f'))
        grafo.conecta('a', 'b')
        grafo.conecta('a', 'c')
        grafo.conecta('b', 'c')
        grafo.conecta('b', 'f')
        grafo.conecta('c', 'd')
        grafo.conecta('c', 'e')

        self.assertEqual(grafo.ordenacao_topologica(), ['a', 'b', 'f' , 'c', 'e', 'd'])

        grafo.conecta('c', 'f')
        self.assertEqual(grafo.ordenacao_topologica(), ['a', 'b', 'c' , 'f', 'e', 'd'])