public void TestCalculoDeCoordenadaSobreDimensionada() { int maxCuadras = 8; string movimientosTest = "AAAAAAAAAAAA"; CalculadorDeViajeCartesiano calculadorDeViaje = new CalculadorDeViajeCartesiano(); calculadorDeViaje.coordenadaInicial = new CoordenadaCartesiana(0, 0, maxCuadras, Data.Enumeraciones.PuntosCardinales.Norte); CoordenadaCartesiana coordenadaTest = new CoordenadaCartesiana(0, 0, maxCuadras, Data.Enumeraciones.PuntosCardinales.Norte); Entrega entregaTest = new Entrega(); entregaTest.movimientos = movimientosTest; calculadorDeViaje.entrega = entregaTest; Assert.ThrowsException <Exception>(() => coordenadaTest = calculadorDeViaje.calcularCoordenadaFinal()); }
public void TestGeneracionDeInforme() { //CARGA VARIABLE DE APP var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("AppSettings.json", optional: false); IConfiguration config = builder.Build(); int maximosViajesPorDron = 1; int maxCuadras = 8; string rutaBase = config.GetSection("AppSettings").GetSection("RutaBase").Value;; string movimientosTest = "ADAIAD"; Entrega entregaTest = new Entrega(); entregaTest.movimientos = movimientosTest; Dron d1 = new Dron(); d1.nombre = "1"; List <Entrega> rutaTest = new List <Entrega>(); rutaTest.Add(entregaTest); d1.ruta = rutaTest; GeneradorDeInformeCartesiano gi = new GeneradorDeInformeCartesiano(rutaBase); CalculadorDeViajeCartesiano calculadorDeViaje = new CalculadorDeViajeCartesiano(); calculadorDeViaje.coordenadaInicial = new CoordenadaCartesiana(0, 0, maxCuadras, Data.Enumeraciones.PuntosCardinales.Norte); List <CoordenadaCartesiana> objetivosx = new List <CoordenadaCartesiana>(); foreach (Entrega e in d1.ruta.Take(maximosViajesPorDron)) { calculadorDeViaje.entrega = e; calculadorDeViaje.coordenadaInicial = calculadorDeViaje.calcularCoordenadaFinal(); objetivosx.Add(calculadorDeViaje.coordenadaInicial); } d1.objetivos = objetivosx; gi.GenerarInforme(d1); }
public void TestCalculoDeCoordenada() { int maxCuadras = 8; string movimientosTest = "AAAAIAA"; CalculadorDeViajeCartesiano calculadorDeViaje = new CalculadorDeViajeCartesiano(); calculadorDeViaje.coordenadaInicial = new CoordenadaCartesiana(0, 0, maxCuadras, Data.Enumeraciones.PuntosCardinales.Norte); CoordenadaCartesiana coordenadaEsperada = new CoordenadaCartesiana(-2, 4, maxCuadras, Data.Enumeraciones.PuntosCardinales.Occidente); Entrega entregaTest = new Entrega(); entregaTest.movimientos = movimientosTest; calculadorDeViaje.entrega = entregaTest; CoordenadaCartesiana coordenadaTest = new CoordenadaCartesiana(0, 0, maxCuadras, Data.Enumeraciones.PuntosCardinales.Norte); coordenadaTest = calculadorDeViaje.calcularCoordenadaFinal(); Assert.AreEqual(coordenadaEsperada.x, coordenadaTest.x); Assert.AreEqual(coordenadaEsperada.y, coordenadaTest.y); Assert.AreEqual(coordenadaEsperada.orientacion, coordenadaTest.orientacion); }
public static async System.Threading.Tasks.Task Main(string[] args) { try { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("Bienvenido a Su Corrientazo a Domicilio"); Console.WriteLine(); AlistaFormulario(); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"{ex.Message}."); Console.WriteLine($"Por favor revise todos los parámtros de la aplicación e intente de nuevo. Presione una tecla para salir."); Console.ReadLine(); Environment.Exit(-1); } Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Los parámetros actuales para la ejecución son: "); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Red; Console.Write("Número de drones: "); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{maximoDrones}"); Console.ForegroundColor = ConsoleColor.Red; Console.Write("Ruta base: "); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{rutaBase}"); Console.ForegroundColor = ConsoleColor.Red; Console.Write("Máximo número de entregas por dron: "); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{maximosViajesPorDron}"); Console.ForegroundColor = ConsoleColor.Red; Console.Write("Máximo número de cuadras a la redonda: "); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"{maximoNumeroDeCuadras}"); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Si desea, puede cambiar estos valores en el archivo Appsettings.json en la ruta de la aplicación."); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("¿Desea continuar? Sí:S / No:N"); bool siga = Console.ReadLine().ToUpper() == "S"; StringBuilder fallidos = new StringBuilder(); while (siga) { //REINICIA VARIABLES PARA UN DIA NUEVO Console.ForegroundColor = ConsoleColor.Green; //gi = new GeneradorDeInformeCartesiano(rutaBase); //vc = new CalculadorDeViajeCartesiano(); fallidos = new StringBuilder(); //BORRA CARPETA DE RESULTADOS Parallel.ForEach(Directory.GetFiles($"{rutaBase}\\OUT\\", "*.txt"), (archivo) => { File.Delete(archivo); }); //GENERA LAS RUTAS DE TODOS LOS DRONES GeneradorDeInformeCartesiano gi = new GeneradorDeInformeCartesiano(rutaBase); IEnumerable <List <Entrega> > v = await GeneradorDeRuta.GenerarRutasAsync(nombres); int contador = 0; foreach (List <Entrega> r in v) { drones[contador].ruta = r; contador++; } Parallel.ForEach((drones), d1 => { CalculadorDeViajeCartesiano vc = new CalculadorDeViajeCartesiano(); vc.coordenadaInicial = new CoordenadaCartesiana(0, 0, maximoNumeroDeCuadras, PuntosCardinales.Norte); gi = new GeneradorDeInformeCartesiano(rutaBase); d1.estado = EstadoBasicoVehiculo.Ocupado; try { List <CoordenadaCartesiana> objetivosx = new List <CoordenadaCartesiana>(); foreach (Entrega e in d1.ruta.Take(maximosViajesPorDron)) { vc.entrega = e; vc.coordenadaInicial = vc.calcularCoordenadaFinal(); objetivosx.Add(vc.coordenadaInicial); } d1.objetivos = objetivosx; gi.GenerarInforme(d1); d1.estado = EstadoBasicoVehiculo.Disponible; Console.WriteLine($"Dron {d1.nombre}:OK "); } catch (Exception ex) { fallidos.Append($"Dron {d1.nombre}: {ex.Message} ."); } }); Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"Finalizado"); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Drones Fallidos: {fallidos.ToString()}"); Console.ForegroundColor = ConsoleColor.Yellow; string salida = string.Empty; while (salida == string.Empty) { Console.WriteLine("¿Desea realizar otro viaje? Sí:S / No:N"); salida = Console.ReadLine().ToUpper(); if (salida == "S") { siga = true; } else if (salida == "N") { siga = false; } else { salida = string.Empty; } } } Environment.Exit(-1); }