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)
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'])
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'))
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)
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)
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'])