public void TestColaVacia() { Escenario(); bool act = arreglo.ColaVacia(0); bool esp = true; Assert.AreEqual(esp, act); }
/// <summary> /// Permite realizar las operaciones del bus, que consiten en desenso de pasajeros, subir pasajeros y avanzar a otra estación. /// </summary> /// <param name="tiempo"></param> /// <param name="grafo"></param> /// <returns></returns> public void AtiendeBus(int tiempo, GrafoMatriz <Estacion> grafo) { if (tiempo == siguienteInteraccion) { Estacion[] estaciones = grafo.DarVertices(); int EstacionActualRuta = ruta.DarParadas()[EstacionActual][0]; int NumParada = ruta.DarParadas()[EstacionActual][1]; int NumCola = ruta.DarParadas()[EstacionActual][2]; if (ruta.DarParadas().Count <= EstacionActual + 1) { TerminoRecorrido = true; } Estacion estacion = estaciones[EstacionActualRuta]; Parada parada = estacion.DarParadas()[NumParada]; if (!parada.Estado && !Estado) { parada.Estado = true; this.Estado = true; for (int i = 0; i < Pasajeros.Length; i++) { if (Pasajeros[i] != null) { if (Pasajeros[i].EsMiEstacion(EstacionActual, this, grafo) == 4) { Pasajeros[i] = null; CapacidadActual--; } else if (Pasajeros[i].EsMiEstacion(EstacionActual, this, grafo) == 1) { estaciones[EstacionActual].agregarPasajeros(Pasajeros[i]); estaciones[EstacionActual].AumentarCantidadPasajeros(); Pasajeros[i] = null; CapacidadActual--; } } } ArregloCola <Pasajero> pasajeros = parada.ColasPasajeros; while (!pasajeros.ColaVacia(NumCola) && CapacidadActual < Capacidad) { agregarPasajero(pasajeros.ObtenerElemento(NumCola)); pasajeros.EliminarElemento(NumCola); CapacidadActual++; } siguienteInteraccion++; datos[tiempo] = "Nombre estación: " + grafo.DarVertices()[EstacionActualRuta].GetNombre() + " Siguiente interacción: " + siguienteInteraccion + " Cantidad pasajeros: " + CapacidadActual + " Tiempo Actual: " + tiempo + " Numero parada: " + NumParada + " Cola: " + NumCola; } else if (Estado) { datos[tiempo] = "Atiende"; parada.Estado = false; this.Estado = false; EstacionActual++; if ((tiempo > 120 && tiempo < 240) || (tiempo > 780 && tiempo < 900)) { siguienteInteraccion += (int)(grafo.DarMatriz()[EstacionActualRuta, ruta.DarParadas()[EstacionActual][0]] / VELOCIDAD_PICO); } else { //Console.WriteLine(ruta.DarParadas()[EstacionActual][0]); //Console.WriteLine(grafo.DarMatriz()[EstacionActualRuta, ruta.DarParadas()[EstacionActual][0]]); siguienteInteraccion += (int)(grafo.DarMatriz()[EstacionActualRuta, ruta.DarParadas()[EstacionActual][0]] / VELOCIDAD_VALLE); } } else { datos[tiempo] = "Espera Atención"; siguienteInteraccion++; } } else { datos[tiempo] = "Espera"; } Utilidades.ExportarInfo(datos, @"Informacion\bus" + this.ruta.GetNombre() + " ", this.GetHashCode()); }