Ejemplo n.º 1
0
def conocer_un_director(lst,
                        lst2,
                        director,
                        etiqueta="director_name",
                        criterio_calificacion="vote_average"):
    if lst['size'] == 0:
        print("La lista esta vacía")
        return 0
    else:
        t1_start = process_time()  #tiempo inicial
        coleccion = lt.newList("ARRAY_LIST")
        iterador_coleccion = it.newIterator(lst)
        while it.hasNext(iterador_coleccion):
            counter = it.next(iterador_coleccion)
            if director.lower() in counter[etiqueta].lower():
                id_store = counter['id']
                iterador_pelicula = it.newIterator(lst2)
                pelicula_convertida = conversor_entre_cvs(
                    id_store, iterador_pelicula)
                lt.addLast(coleccion, pelicula_convertida)
                print(lt.lastElement(coleccion)['title'])
        promedio = promediar(coleccion, criterio_calificacion)
        t1_stop = process_time()
        print(f"tiempo de ejecucion: {t1_stop-t1_start} segundos")
        print(
            f"Peliculas totales:{lt.size(coleccion)}\nCalificacion promedio:{promedio}"
        )
def test_loading_CSV_y_ordenamiento(lst_books):
    """
    Prueba que se pueda leer el archivo y que despues de relizar el sort, el orden este correcto
    """
    element = lt.lastElement(lst_books)
    assert element['goodreads_book_id'] == '4374400'
    element = lt.firstElement(lst_books)
    assert element['goodreads_book_id'] == '2767052'

    sort.selectionSort(lst_books, less)

    tam = lt.size(lst_books)
    assert tam == 149
    element = lt.lastElement(lst_books)
    assert element['goodreads_book_id'] == '22557272'
    element = lt.firstElement(lst_books)
    assert element['goodreads_book_id'] == '1'
def test_addLast(lst, books):
    assert lt.isEmpty(lst) == True
    assert lt.size(lst) == 0
    lt.addLast(lst, books[1])
    assert lt.size(lst) == 1
    lt.addLast(lst, books[2])
    assert lt.size(lst) == 2
    book = lt.firstElement(lst)
    assert book == books[1]
    book = lt.lastElement(lst)
    assert book == books[2]
Ejemplo n.º 4
0
def test_addLast(slt, movies):
    assert lst.isEmpty(slt) == True
    assert lst.size(slt) == 0
    lst.addLast(slt, movies[0])
    assert lst.size(slt) == 1
    lst.addLast(slt, movies[1])
    assert lst.size(slt) == 2
    movie = lst.firstElement(slt)
    assert movie == movies[0]
    movie = lst.lastElement(slt)
    assert movie == movies[1]
Ejemplo n.º 5
0
def test_loading_CSV_y_ordenamiento():
    """
    Prueba que se pueda leer el archivo y que despues de relizar el sort, el orden este correcto
    """
    setUp()
    sort.selectionSort(lst_books, less)
    while not (lt.isEmpty(lst_books)):
        x = int(lt.removeLast(lst_books)['goodreads_book_id'])
        if not (lt.isEmpty(lst_books)):
            y = int(lt.lastElement(lst_books)['goodreads_book_id'])
        else:
            break
        assert x > y
def test_loading_CSV_y_ordenamiento_inv():
    """
    Prueba que se pueda leer el archivo y que despues de relizar el sort, el orden este correcto
    """
    setUp()
    sort.insertionSort(lst_movies,greater)
    while not (lt.isEmpty(lst_movies)):
        x = int(lt.removeLast(lst_movies)['id'])
        if not (lt.isEmpty(lst_movies)):
            y = int(lt.lastElement(lst_movies)['id'])
        else:
            break
        assert x < y
def test_loading_CSV_y_ordenamiento():
    """
    Prueba que se pueda leer el archivo y que despues de relizar el sort, el orden este correcto
    """
    setUp()
    sort.mergesort(lst_books,less)
    while not (lt.isEmpty(lst_books)):
        x = int(lt.removeLast(lst_books)['goodreads_book_id'])
        if not (lt.isEmpty(lst_books)):
            y = int(lt.lastElement(lst_books)['goodreads_book_id'])
        else:
            break
        assert x > y
    counter=1
    iterador=it.newIterator(lst_books)
    while it.hasNext(iterador) and counter<=10:
        elemento=it.next(iterador)
        print(elemento)
        counter+=1
Ejemplo n.º 8
0
def conocer_un_genero(lst, director, seguro=False):
    if lst['size'] == 0:
        print("La lista esta vacía")
        return 0
    else:
        t1_start = process_time()  #tiempo inicial
        coleccion = lt.newList("ARRAY_LIST")
        iterador_coleccion = it.newIterator(lst)
        while it.hasNext(iterador_coleccion):
            counter = it.next(iterador_coleccion)
            if director.lower() in counter["genres"].lower():
                lt.addLast(coleccion, counter)
                if not seguro:
                    print(lt.lastElement(coleccion)['title'])
        promedio = promediar(coleccion, "vote_count")
        t1_stop = process_time()

        print(f"tiempo de ejecucion: {t1_stop-t1_start} segundos")
        print(
            f"Peliculas totales:{lt.size(coleccion)}\nCalificacion promedio:{promedio}"
        )
    return coleccion
Ejemplo n.º 9
0
def GetMoviesByActor(lstactors, actorname, lstmovies):
    if lstactors["size"] == 0:
        print("La lista está vacía")
        return 0
    else:
        movies = lt.newList("ARRAY_LIST")
        col = {}
        itcast = it.newIterator(lstactors)
        while it.hasNext(itcast):
            counter = it.next(itcast)
            if counter["actor1_name"].lower() == actorname.lower():
                ids = counter["id"]
                itmovies = it.newIterator(lstmovies)
                movie = conversor_entre_cvs(ids, itmovies)
                lt.addLast(movies, movie)
                print(lt.lastElement(movies)["original_title"])
                dire = counter["director_name"]
                if dire in col:
                    col[dire] += 1
                else:
                    col[dire] = 1
            if counter["actor2_name"].lower() == actorname.lower():
                ids = counter["id"]
                itmovies = it.newIterator(lstmovies)
                movie = conversor_entre_cvs(ids, itmovies)
                lt.addLast(movies, movie)
                print(lt.lastElement(movies)["original_title"])
                dire = counter["director_name"]
                if dire in col:
                    col[dire] += 1
                else:
                    col[dire] = 1
            if counter["actor3_name"].lower() == actorname.lower():
                ids = counter["id"]
                itmovies = it.newIterator(lstmovies)
                movie = conversor_entre_cvs(ids, itmovies)
                lt.addLast(movies, movie)
                print(lt.lastElement(movies)["original_title"])
                dire = counter["director_name"]
                if dire in col:
                    col[dire] += 1
                else:
                    col[dire] = 1
            if counter["actor4_name"].lower() == actorname.lower():
                ids = counter["id"]
                itmovies = it.newIterator(lstmovies)
                movie = conversor_entre_cvs(ids, itmovies)
                lt.addLast(movies, movie)
                print(lt.lastElement(movies)["original_title"])
                dire = counter["director_name"]
                if dire in col:
                    col[dire] += 1
                else:
                    col[dire] = 1
            if counter["actor5_name"].lower() == actorname.lower():
                ids = counter["id"]
                itmovies = it.newIterator(lstmovies)
                movie = conversor_entre_cvs(ids, itmovies)
                lt.addLast(movies, movie)
                print(lt.lastElement(movies)["original_title"])
                dire = counter["director_name"]
                if dire in col:
                    col[dire] += 1
                else:
                    col[dire] = 1
    promedio = promediar(movies, "vote_average")
    ordenado = sorted(col.items(), key=lambda x: x[1], reverse=True)
    print(
        f"peliculas totales: {lt.size(movies)}\nCalificación promedio: {promedio}\nDirector con más colaboraciones: {ordenado[0][0]}"
    )
Ejemplo n.º 10
0
def main():
    """
    Método principal del programa, se encarga de manejar todos los metodos adicionales creados

    Instancia una lista vacia en la cual se guardarán los datos cargados desde el archivo
    Args: None
    Return: None 
    """
    # lista = None
    # lista = lt.newList() #Usando implementacion linkedlist 'SINGLE_LINKED'
    lista = lt.newList(
        'ARRAY_LIST')  #Usando implementacion linkedlist 'ARRAY_LIST'
    while True:
        printMenu()  #imprimir el menu de opciones en consola
        inputs = input(
            'Seleccione una opción para continuar\n')  #leer opción ingresada
        if len(inputs) > 0:
            if int(inputs[0]) == 1:  #opcion 1
                lista = loadCSVFile(
                    "Data/test.csv")  #llamar funcion cargar datos
                print("Datos cargados, ", lista['size'], " elementos cargados")
                print("Lista:", lista)
                if lista == None or lista[
                        'size'] == 0:  #obtener la longitud de la lista
                    print("La lista esta vacía")
                else:
                    print("La lista tiene ", lista['size'], " elementos")
            elif int(inputs[0]) == 2:  #opcion 2
                if lista == None or lista[
                        'size'] == 0:  #obtener la longitud de la lista
                    print("La lista esta vacía")
                else:
                    print("La lista tiene ", lista['size'], " elementos")
            elif int(inputs[0]) == 3:  #opcion 3
                if lista == None or lista[
                        'size'] == 0:  #obtener la longitud de la lista
                    print("La lista esta vacía")
                else:
                    criteria = input('Ingrese el criterio de búsqueda\n')
                    counter = countElementsFilteredByColumn(
                        criteria, "nombre",
                        lista)  #filtrar una columna por criterio
                    print("Coinciden ", counter,
                          " elementos con el crtierio: ", criteria)
            elif int(inputs[0]) == 4:  #opcion 4
                if lista == None or lista[
                        'size'] == 0:  #obtener la longitud de la lista
                    print("La lista esta vacía")
                else:
                    criteria = input('Ingrese el criterio de búsqueda\n')
                    counter = countElementsByCriteria(criteria, 0, lista)
                    print("Coinciden ", counter,
                          " elementos con el crtierio: '", criteria,
                          "' (en construcción ...)")
            elif int(inputs[0]) == 5:  #opcion 5
                if lista == None or lista[
                        'size'] == 0:  #obtener el ultimo nodo de la lista
                    print("La lista esta vacía")
                else:
                    print(lt.lastElement(lista))
            elif int(inputs[0]) == 6:  #opcion 6
                if lista == None or lista[
                        'size'] == 0:  #obtener el ultimo nodo de la lista
                    print("La lista esta vacía")
                else:
                    print(lt.lastElementIterative(lista))
            elif int(inputs[0]) == 7:  #opcion 7
                if lista == None or lista['size'] == 0:  # sort
                    print("La lista esta vacía")
                else:
                    lt.mergeSort(lista, lessFunction)
                    print(lista)
            elif int(inputs[0]) == 0:  #opcion 0, salir
                sys.exit(0)