def verificar_candidatos(self, ruta_aeropuertos_candidatos,
                             ruta_conexiones_candidatas):
        # Se revisa cada aeropuerto candidato con las agregars conexiones candidatas.
        # Se elimina el aeropuerto en caso de que este genere muchos infectados
        generador_aeropuertos = cargar_aeropuertos(ruta_aeropuertos_candidatos)

        for dato_aeropuerto in generador_aeropuertos:
            aeropuerto = Aeropuerto(*dato_aeropuerto)
            self.aeropuertos[aeropuerto.id] = aeropuerto
            # Hace un generador cada vez que ve un aeropuerto
            datos_conexiones = cargar_conexiones(ruta_conexiones_candidatas)
            # Agrega las conexiones al aeropuerto candidato
            for dato_conexion in datos_conexiones:
                conexion = Conexion(*dato_conexion)
                if conexion.aeropuerto_inicio_id == aeropuerto.id:
                    aeropuerto.conexiones.append(conexion)
                    # Para cada conexion agregada chequeamos el umbral
                    id_salida = conexion.aeropuerto_inicio_id
                    infectados = self.infectados_generados_desde_aeropuerto(
                        id_salida)
                    if infectados > UMBRAL:
                        print(
                            f"La conexión {conexion} rompe las reglas de seguridad"
                        )
                        self.eliminar_conexion(conexion)

            if len(aeropuerto.conexiones) == 0:
                self.eliminar_aeropuerto(aeropuerto.id)
Exemplo n.º 2
0
    def cargar_red(self, ruta_aeropuertos, ruta_conexiones):

        # Primero se crean todos los aeropuertos
        for aeropuerto_id, nombre in cargar_aeropuertos(ruta_aeropuertos):
            self.agregar_aeropuerto(aeropuerto_id, nombre)

        # Después generamos las conexiones
        for id_partida, id_salida, infectados in cargar_conexiones(ruta_conexiones):
            self.agregar_conexion(id_partida, id_salida, infectados)
Exemplo n.º 3
0
    def verificar_candidatos(self, ruta_aeropuertos_candidatos, ruta_conexiones_candidatas):
        # Se revisa cada aeropuerto candidato con las agregars conexiones candidatas.
        # Se elimina el aeropuerto en caso de que este genere muchos infectados
        aeropuertos_candidatos = []
        conexiones_candidatas = []
        for aeropuerto_id, nombre in cargar_aeropuertos(ruta_aeropuertos_candidatos):
            self.agregar_aeropuerto(aeropuerto_id, nombre)

        for id_partida, id_salida, infectados in cargar_conexiones(ruta_conexiones_candidatas):
            self.agregar_conexion(id_partida, id_salida, infectados)
            if self.infectados_generados_desde_aeropuerto(id_partida) > UMBRAL:
                self.eliminar_conexion(Conexion(id_partida, id_salida, infectados))
                print(f"Se eliminó la conexión {Conexion(id_partida, id_salida, infectados)} al romper las reglas de seguridad")