def optionFour(cont):
    msg = "País base: "
    country = input(msg)
    countries = cont['countries']
    initialLPoint = me.getValue(m.get(countries, country))['CapitalName']
    controller.minimumCostPaths(cont, initialLPoint)
    return country
    elif int(inputs[0]) == 3:  # Req 2

        verticeMasArcosReq2 = printReq2(
            analyzer, controller.req2(analyzer))  # Lista ordenada

    elif int(inputs[0]) == 4:  # Req 3

        paisA = input(
            "\nIngrese el nombre del primer país que desea consultar. Ejemplo: Colombia\n~ "
        )
        paisB = input(
            "\nIngrese el nombre del segundo país que desea consultar. Ejemplo: Indonesia\n~ "
        )

        controller.minimumCostPaths(analyzer, paisA)

        pathReq3 = printReq3(analyzer, paisB)

    elif int(inputs[0]) == 5:  # Req 4

        resultados = controller.req4(analyzer)
        distanciaMax = controller.bfsReq4(analyzer)

        print(
            f"\nNúmero de nodos conectados en la red de expansión mínima: {resultados[0]}\n"
        )
        print(f"Distancia de la red de expansión mínima: {resultados[1]} km\n")
        print(
            "\nLa rama más larga que hace parte de la red de expansión mínima desde 'Bogotá-Colombia' tiene una longitud de {0} y corresponde al landing point: {1}"
            .format(distanciaMax[0]['distTo'], distanciaMax[0]['edgeTo']))
Exemple #3
0
        plotStronglyConnectedComponentsMap(analyzer, vertexa, vertexb,
                                           landingpointnamea,
                                           landingpointnameb)

    elif int(inputs[0]) == 4:
        print()
        printMostConnectedLandingPoint(analyzer)
        plotMostConnectedLandingPointMap(analyzer)

    elif int(inputs[0]) == 5:
        print()
        countrya = str(input("Ingrese país: "))
        countryb = str(input("Ingrese país: "))
        vertexa = controller.getCapitalVertexByCountry(analyzer, countrya)
        vertexb = controller.getCapitalVertexByCountry(analyzer, countryb)
        controller.minimumCostPaths(analyzer, vertexa)
        printMinimumCostPath(analyzer, vertexb)
        plotMinimumCostPathMap(analyzer, vertexa, vertexb)

    elif int(inputs[0]) == 6:
        controller.minimumSpanningTrees(analyzer)
        minspanningtree = controller.minimumSpanningTree(analyzer)
        print("\n---------- Red de expansión mínima ----------")
        print("Total nodos conectados: " + str(minspanningtree[0]))
        print("Costo total: " + str(minspanningtree[1]) + " km\n")
        printLongestConnection(analyzer)
        printShortestConnection(analyzer)
        plotMinimumSpanningTreeConnections(analyzer)

    elif int(inputs[0]) == 7:
        print()
            print('Los landing points con mas conexiones son:')
        else:
            print('El landing point con mas conexiones es:')
        for i in result[0]:
            values = m.get(cont['landingPoints'], i)
            print('El landing point con mas conexiones fue',
                  controller.landingPointName(cont, values['key']), 'con',
                  values['value']['size'], 'conexiones.')

    elif int(inputs[0]) == 4:
        countryA = input("Nombre del pais A: ")
        countryB = input("Nombre del pais B: ")

        lps = controller.getCapitalLps(cont, countryA, countryB)

        controller.minimumCostPaths(cont, lps[0])
        path = controller.minimumCostPath(cont, lps[1])

        if path is not None:
            pathlen = stack.size(path)
            pesototal = 0
            print('El camino pasa por', str(pathlen), 'rutas')
            while (not stack.isEmpty(path)):
                stop = stack.pop(path)
                pesototal += stop['weight']
                print(stop)
            print('La distancia total de la ruta fue de aprox',
                  round(pesototal, 2), 'km')
        else:
            print('No hay camino')
def thread_cycle():
    while True:
        printMenu()
        inputs = input('Seleccione una opción para continuar\n')
        if int(inputs[0]) == 1:
            print("Cargando información de los archivos ....")
            cont = controller.init()
        elif int(inputs[0]) == 2:
            print("\nInicializando....")
            controller.loadServices(cont)
            rta = controller.sacar_info(cont)  
            print("***************")
            print (str("-El total de landing points es: " + str(rta[0]))) 
            print (str("-El total de conexiones entre landing points  es: " + str(rta[1])))
            print (str("-El total de países  es:" + str(rta[2])))
            print(str("-La información del primer landing point es: "))
            print(str("     ") + str(rta[3]))
            print (str("-La población del último país cargado es: " + str(rta[4])))
            print (str("-El número usuarios de Internet del último país cargado es: " + str(rta[5])))

            print("***************")

 
        elif int(inputs[0]) == 3:                      #req 1
            landing_1= input("Nombre del landing point 1 (Ejem. Redondo Beach- 4992):")
            landing_2= input("Nombre del landing point 2 (Ejem. Vung Tau-6013):")
            clusteres = controller.connectedComponents(cont)
            landing_pints = controller.estan_closter(cont,landing_1,landing_2)
            print("-------------------------------------------------------")
            print("")
            print("Número total de clústeres presentes en la red: " + str(clusteres))
            if landing_pints:
                print("Los dos landing points están en el mismo clúster")  
            else:
                print(" los dos landing points NO están en el mismo clúster")
            
        elif int(inputs[0]) == 4:                      #req 2
            rta=controller.servedRoutes(cont)
            print("-------------------------------------------------------")
            print("lista de landing points: ")
            iterador_1 =it.newIterator(rta[1])
            iterador_2 =it.newIterator(rta[2])
            while it.hasNext(iterador_1) and it.hasNext(iterador_2):
                nombre = it.next(iterador_1)
                id = it.next(iterador_2)
                print("")
                print("Nombre y pais del landing point: " + str(nombre))
                print("ID del landing point: " + str(id))
            print("")
            print("")
            print("El total de cables conectados a dichos landiing points son:" + str(rta[0]))
 
        elif int(inputs[0]) == 5:                      #req 3
            Pais_1 = " " + input("Primer país (Eje. Colombia) : ")
            Pais_2 = " " + input("Segundo país (Eje. Indonesia) : ")
            controller.minimumCostPaths(cont, Pais_1)
            camino = controller.camino(cont,Pais_2)
            iterador = it.newIterator(camino)
            print("-------------------------------------------------------")
            print("Camino del primer pais al segundo pais:")
            while it.hasNext(iterador):
                elemento = it.next(iterador)
                print(elemento)
            distancia = controller.distancia_total(cont,Pais_2)
            print("")
            print("")
            print("La distancia total entre los dos landing points es:")
            print(distancia)
 
            
        elif int(inputs[0]) == 6:                      #req 4
            rta=controller.infraestructura_critica(cont)
            print("-------------------------------------------------------")
            print("")
            print("El número de nodos conectados a la red de expansión mínima es: " + str(rta[0]))
            print("El costo total (distancia en [km]) de la red de expansión mínima es: " + str(rta[1]) + " Km")
            print("La rama más larga es " + str(rta[2]) + " con una longitud de " + str(rta[3]) + " km")
            print("")
            

            
            
        elif int(inputs[0]) == 7:                      #req 5
            landing = input("Nombre del landing point (Ejem. Fortaleza):")
            rta=controller.inpacto_landing(cont, landing)
            print("-------------------------------------------------------")
            print("")
            print("EL número de paises es: " + str(rta[0]))
            print("Los paises son: ")
            print("")
            iterador = it.newIterator(rta[1])
            while it.hasNext(iterador):
                Pais = str(it.next(iterador))
                print(Pais)
            print("")
        elif int(inputs[0]) == 8:                     #req 6
            pais =  input("Nombre del país (Ejem. Cuba): ")
            cable = input("Nombre del cable (Ejem. ALBA-1): ")
            rta =controller.ancho_de_banda(cont, pais, cable)
            iterador = it.newIterator(rta[0])
            iterador_2 = it.newIterator(rta[1])
            print("-------------------------------------------------------")
            while it.hasNext(iterador) and it.hasNext(iterador_2):
                nombre = it.next(iterador)
                ancho_banda = it.next(iterador_2)
                print("")
                print("Nombre del Pais Conectado: " + str(nombre))
                print("Ancho de banda: " + str(ancho_banda) + " 𝑀𝑏𝑝s")
                print("")
            
            
            
        elif int(inputs[0]) == 9:                     #req 7                     
            ruta_1 = input("Ingrese la Dirección IP1 (Ejem. 165.132.67.89 ): ")
            ruta_2 = input("Ingrese la Dirección IP2 (Ejem. 8.8.8.8): ")
            rta =controller.saltos_minimos(cont, ruta_1, ruta_2)
            print("-------------------------------------------------------")
            print(rta) 
        else:
            sys.exit(0)
    sys.exit(0)