public GrafoRotasVoo GetGrafoFromDB() { var grafoVooRota = new GrafoRotasVoo(); var arestas = _dbManager.GetRoutesData(); var vertices = new List <Vertice>(); foreach (var aresta in arestas) { if ((from auxVertice in vertices where auxVertice.Aeroporto == aresta.VerticeO select auxVertice).Count() == 0) { var vertex = new Vertice { Aeroporto = aresta.VerticeO, Status = Status.NOVO, Arestas = new List <Aresta>() }; vertex.Arestas.Add(new Aresta { Distancia = aresta.Distancia, Duracao = aresta.Duracao, Peso = aresta.Peso, VerticeD = aresta.VerticeD, VerticeO = aresta.VerticeO }); vertices.Add(vertex); } else { var vertice = grafoVooRota.EncontraVerticePorNome(aresta.VerticeO, vertices); var index = vertices.IndexOf(vertice); vertices[index].Arestas.Add(new Aresta { Distancia = aresta.Distancia, Duracao = aresta.Duracao, Peso = aresta.Peso, VerticeD = aresta.VerticeD, VerticeO = aresta.VerticeO }); } } grafoVooRota.Vertices.AddRange(vertices); grafoVooRota.Arestas.AddRange(arestas); return(grafoVooRota); }
public void EncontrarVerticePorNome_Test(string nome) { GrafoRotasVoo Rotas = new GrafoRotasVoo(); GrafoRotasVoo Voos = new GrafoRotasVoo(); Rotas.CriaGrafo("rotas.txt"); Voos.CriaGrafo("voos.txt"); var vertice = Rotas.EncontraVerticePorNome(nome); vertice.ShouldNotBeNull(); vertice.Aeroporto.ShouldBe(nome); return; }
public void ArvoreGeradoraMinima_Test() { GrafoRotasVoo Rotas = new GrafoRotasVoo(); GrafoRotasVoo Voos = new GrafoRotasVoo(); Rotas.CriaGrafo("rotas.txt"); Voos.CriaGrafo("voos.txt"); var prim = Rotas.ArvoreGeradoraMin(Rotas.Vertices, Rotas.Arestas); prim.ShouldNotBeNull(); prim.Vertices.Count.ShouldBeGreaterThan(0); prim.Arestas.Count.ShouldBeGreaterThan(0); return; }
public void isAtingivel_Test(string origem, string destino) { GrafoRotasVoo Rotas = new GrafoRotasVoo(); GrafoRotasVoo Voos = new GrafoRotasVoo(); Rotas.CriaGrafo("rotas.txt"); Voos.CriaGrafo("voos.txt"); var vOrigem = Rotas.EncontraVerticePorNome(origem); var vDestino = Rotas.EncontraVerticePorNome(destino); vOrigem.ShouldNotBeNull(); vOrigem.Aeroporto.ShouldBe(origem); vDestino.ShouldNotBeNull(); vDestino.Aeroporto.ShouldBe(destino); Rotas.isAtingivel(vOrigem, vDestino).ShouldBeTrue(); return; }
public void MelhorCaminho_Test(string origem, string destino) { GrafoRotasVoo Rotas = new GrafoRotasVoo(); GrafoRotasVoo Voos = new GrafoRotasVoo(); Rotas.CriaGrafo("rotas.txt"); Voos.CriaGrafo("voos.txt"); var vOrigem = Rotas.EncontraVerticePorNome(origem); var vDestino = Rotas.EncontraVerticePorNome(destino); vOrigem.ShouldNotBeNull(); vOrigem.Aeroporto.ShouldBe(origem); vDestino.ShouldNotBeNull(); vDestino.Aeroporto.ShouldBe(destino); Rotas.MelhorCaminho(origem, destino).Count.ShouldBeGreaterThan(0); var melhorCaminho = Rotas.MelhorCaminho(origem, destino); return; }
public void EncontrarHorarioMaximo_Test(DateTime horarioMax, string origem, string destino) { GrafoRotasVoo Rotas = new GrafoRotasVoo(); GrafoRotasVoo Voos = new GrafoRotasVoo(); Rotas.CriaGrafo("rotas.txt"); Voos.CriaGrafo("voos.txt"); var vOrigem = Rotas.EncontraVerticePorNome(origem); var vDestino = Rotas.EncontraVerticePorNome(destino); vOrigem.ShouldNotBeNull(); vOrigem.Aeroporto.ShouldBe(origem); vDestino.ShouldNotBeNull(); vDestino.Aeroporto.ShouldBe(destino); Rotas.CalculaHoraMaxSaida(horarioMax, origem, destino).ShouldNotBeNull(); Rotas.CalculaHoraMaxSaida(horarioMax, origem, destino).ShouldNotBe(DateTime.MinValue); var maxDate = Rotas.CalculaHoraMaxSaida(horarioMax, origem, destino); return; }
public GrafoPageModel(GrafoRotasVoo grafo) { Grafo = grafo; }