コード例 #1
0
        public void Obter_lista_de_trechos()
        {
            var arquivoService = new ArquivoService();
            var rotaService    = new RotaService();

            var queue   = arquivoService.LerArquivoDeEntrada("entrada_trechos_teste.txt");
            var veiculo = new Veiculo(1, 7);
            var roteiro = new Roteiro(veiculo);
            var trechos = rotaService.ObterTrechos(queue, roteiro).ToArray();

            Assert.AreEqual(trechos.Count(), 8);
            Assert.AreEqual(trechos[0].Cidade, "119");
            Assert.AreEqual(trechos[0].Quilometragem, 47);
            Assert.AreEqual(trechos[1].Cidade, "8");
            Assert.AreEqual(trechos[1].Quilometragem, 230);
            Assert.AreEqual(trechos[2].Cidade, "107");
            Assert.AreEqual(trechos[2].Quilometragem, 48);
            Assert.AreEqual(trechos[3].Cidade, "10");
            Assert.AreEqual(trechos[3].Quilometragem, 65);
            Assert.AreEqual(trechos[4].Cidade, "9");
            Assert.AreEqual(trechos[4].Quilometragem, 197);
            Assert.AreEqual(trechos[5].Cidade, "35");
            Assert.AreEqual(trechos[5].Quilometragem, 236);
            Assert.AreEqual(trechos[6].Cidade, "129");
            Assert.AreEqual(trechos[6].Quilometragem, 142);
            Assert.AreEqual(trechos[7].Cidade, "0");
            Assert.AreEqual(trechos[7].Quilometragem, 71);
        }
コード例 #2
0
        public void Escrever_arquivo_de_saida()
        {
            var arquivoService = new ArquivoService();
            var rotaService    = new RotaService();

            var queue    = arquivoService.LerArquivoDeEntrada("entrada_rotas_teste.txt");
            var veiculos = new List <Veiculo>()
            {
                new Veiculo(1, 7),
                new Veiculo(2, 8),
                new Veiculo(3, 10),
            };
            var rotas = rotaService.ObterRotas(queue, veiculos);

            var linhas = rotaService.EscreverRelatorio(arquivoService, "saida_teste.txt", rotas).ToArray();

            Assert.IsNotNull(linhas);
            Assert.AreEqual(linhas[0], "3");
            Assert.AreEqual(linhas[1], "1 19.57");
            Assert.AreEqual(linhas[2], "2 73.75");
            Assert.AreEqual(linhas[3], "3 20.70");
            Assert.AreEqual(linhas[4], "");
            Assert.AreEqual(linhas[5], "1 9.14");
            Assert.AreEqual(linhas[6], "2 14.87");
            Assert.AreEqual(linhas[7], "3 22.70");
            Assert.AreEqual(linhas[8], "");
            Assert.AreEqual(linhas[9], "1 8.00");
            Assert.AreEqual(linhas[10], "2 10.87");
            Assert.AreEqual(linhas[11], "3 29.00");
            Assert.AreEqual(linhas[12], "");
        }
コード例 #3
0
 public void Setup()
 {
     rotaRepository      = new Mock <IRotaRepository>();
     aeroportoRepository = new Mock <IAeroportoRepository>();
     buscadorMelhorRota  = new Mock <IBuscadorMelhorRota>();
     rotas       = CriarRotasTeste();
     fixture     = new Fixture();
     rotaService = new RotaService(rotaRepository.Object, aeroportoRepository.Object, buscadorMelhorRota.Object);
 }
コード例 #4
0
 public BaseWebController()
 {
     _empresaService     = new EmpresaService();
     _enderecoService    = new EnderecoService();
     _estacaoService     = new EstacaoService();
     _localizacaoService = new LocalizacaoService();
     _pacoteService      = new PacoteService();
     _rotaService        = new RotaService();
     _veiculoService     = new VeiculoService();
     _ocorrenciaService  = new OcorrenciaService();
 }
コード例 #5
0
        public BaseApiController()
        {
            _empresaService     = new EmpresaService();
            _enderecoService    = new EnderecoService();
            _estacaoService     = new EstacaoService();
            _localizacaoService = new LocalizacaoService();
            _pacoteService      = new PacoteService();
            _rotaService        = new RotaService();
            _veiculoService     = new VeiculoService();

            _usuarioService = new UsuarioService().OpenSession();
        }
コード例 #6
0
        public void Calcular_combustivel_gasto_nas_rotas()
        {
            var arquivoService = new ArquivoService();
            var rotaService    = new RotaService();

            var rotasECombustivel = rotaService.LerRelatorioComCombustivel(arquivoService, "entrada_rotas_com_combustivel_teste.txt");
            var rotas             = rotasECombustivel.Item1.ToArray();
            var combustivel       = rotasECombustivel.Item2;

            Assert.AreEqual(rotas.Count(), 3);
            Assert.AreEqual(combustivel - rotas[0].ConsumoMedio, 55.98, 0.1);
            Assert.AreEqual(combustivel - rotas[0].ConsumoMedio - rotas[1].ConsumoMedio, 9.26, 0.1);
        }
コード例 #7
0
        public void Obter_lista_de_veiculos()
        {
            var arquivoService = new ArquivoService();
            var rotaService    = new RotaService();
            var queue          = arquivoService.LerArquivoDeEntrada("entrada_veiculos_teste.txt");
            var veiculos       = rotaService.ObterVeiculos(queue).ToArray();

            Assert.AreEqual(veiculos.Count(), 3);
            Assert.AreEqual(veiculos[0].Codigo, 1);
            Assert.AreEqual(veiculos[0].QuilometroPorLitro, 7);
            Assert.AreEqual(veiculos[1].Codigo, 2);
            Assert.AreEqual(veiculos[1].QuilometroPorLitro, 8);
            Assert.AreEqual(veiculos[2].Codigo, 3);
            Assert.AreEqual(veiculos[2].QuilometroPorLitro, 10);
        }
コード例 #8
0
        public void Escrever_arquivo_de_saida_com_combustivel()
        {
            var arquivoService = new ArquivoService();
            var rotaService    = new RotaService();

            var rotasECombustivel = rotaService.LerRelatorioComCombustivel(arquivoService, "entrada_rotas_com_combustivel_teste.txt");
            var rotas             = rotasECombustivel.Item1;
            var combustivel       = rotasECombustivel.Item2;

            var linhas = rotaService.EscreverRelatorioDeCombustivel(arquivoService, "saida_combustivel_teste.txt", rotas, combustivel).ToArray();

            Assert.IsNotNull(linhas);
            Assert.AreEqual(linhas[0], "0");
            Assert.AreEqual(linhas[1], "");
            Assert.AreEqual(linhas[2], "55.98");
            Assert.AreEqual(linhas[3], "9.26");
            Assert.AreEqual(linhas[4], "0");
            Assert.AreEqual(linhas[5], "");
        }
コード例 #9
0
        public void Obter_lista_de_rotas()
        {
            var arquivoService = new ArquivoService();
            var rotaService    = new RotaService();

            var queue    = arquivoService.LerArquivoDeEntrada("entrada_rotas_teste.txt");
            var veiculos = new List <Veiculo>()
            {
                new Veiculo(1, 7),
                new Veiculo(2, 8),
                new Veiculo(3, 10),
            };
            var rotas = rotaService.ObterRotas(queue, veiculos);

            Assert.AreEqual(rotas.Count(), 3);
            Assert.AreEqual(rotas[0].Dia, 1);
            Assert.AreEqual(rotas[0].Roteiros.Count, 3);
            Assert.AreEqual(rotas[0].Roteiros[0].ConsumoMedio, 19.57142857, 0.1);
            Assert.AreEqual(rotas[1].Dia, 2);
            Assert.AreEqual(rotas[1].Roteiros.Count, 3);
            Assert.AreEqual(rotas[2].Dia, 3);
            Assert.AreEqual(rotas[2].Roteiros.Count, 3);
        }
コード例 #10
0
        static void Main(string[] args)
        {
            var arquivoService = new ArquivoService();
            var rotaService    = new RotaService();
            var rotas          = rotaService.LerRelatorio(arquivoService, "entrada_func_a.txt");

            foreach (var rota in rotas)
            {
                Console.WriteLine("+-------------+");
                Console.WriteLine($"| ROTA DIA {rota.Dia} | ");
                Console.WriteLine("+-------------+");

                foreach (var roteiro in rota.Roteiros)
                {
                    //CARRO A: 35 km CIDADE A, 80 km CIDADE B, 22 km VOLTAR
                    var mensagem = $"CARRO {roteiro.Veiculo.Codigo}: ";
                    foreach (var trecho in roteiro.Trechos)
                    {
                        if (trecho.Cidade.Equals("0"))
                        {
                            mensagem = mensagem + $"{trecho.Quilometragem} km VOLTAR ";
                        }
                        else
                        {
                            mensagem = mensagem + $"{trecho.Quilometragem} km CIDADE {trecho.Cidade}, ";
                        }
                    }
                    Console.WriteLine(mensagem);
                    Console.WriteLine("");
                }
            }

            Console.WriteLine("+ --------------------------------------------------+");
            Console.WriteLine("Pressione qualquer tecla para gerar arquivo de saída.");
            Console.WriteLine("+ --------------------------------------------------+");
            Console.ReadKey();

            rotaService.EscreverRelatorio(arquivoService, "saida_func_a.txt", rotas);

            Console.WriteLine("+ ------------------------+");
            Console.WriteLine("Arquivo gerado com sucesso!");
            Console.WriteLine("+ ------------------------+");
            Console.WriteLine("+ -----------------------------------------------------------+");
            Console.WriteLine("Pressione qualquer tecla para exibir relatório de combustivel.");
            Console.WriteLine("+ -----------------------------------------------------------+");
            Console.ReadKey();

            var rotasECombustivel = rotaService.LerRelatorioComCombustivel(arquivoService, "entrada_func_b.txt");
            var restante          = rotasECombustivel.Item2;

            foreach (var rota in rotasECombustivel.Item1)
            {
                restante -= rota.ConsumoMedio;
                if (restante > 0)
                {
                    Console.WriteLine($"ROTA DIA {rota.Dia}: COMBUSTIVEL RESTANTE: {restante} litros");
                }
                else
                {
                    Console.WriteLine($"ROTA DIA {rota.Dia}: SEM COMBUSTÌVEL SUFICIENTE");
                }
            }

            Console.WriteLine("+ --------------------------------------------------+");
            Console.WriteLine("Pressione qualquer tecla para exibir relatório de combustivel.");
            Console.WriteLine("+ --------------------------------------------------+");
            Console.ReadKey();

            rotaService.EscreverRelatorioDeCombustivel(arquivoService, "saida_func_b.txt",
                                                       rotasECombustivel.Item1, rotasECombustivel.Item2);

            Console.WriteLine("+ ------------------------+");
            Console.WriteLine("Arquivo gerado com sucesso!");
            Console.WriteLine("+ ------------------------+");
            Console.ReadKey();
        }