Exemple #1
0
    def test_LoadTable(self):
        table_capacity = 171
        book_map = ht.newMap(capacity=table_capacity,
                             maptype='CHAINING',
                             comparefunction=self.compare_book_id)
        booksfile = cf.data_dir + 'GoodReads/books-small.csv'

        self.assertEqual(ht.size(book_map), 0)
        self.assertTrue(ht.isEmpty(book_map))

        input_file = csv.DictReader(open(booksfile))
        for book in input_file:
            ht.put(book_map, book['book_id'], book)

        self.assertEqual(ht.size(book_map), 149)
        self.assertTrue(ht.contains(book_map, '100'))

        entry = ht.get(book_map, '100')
        self.assertIsNotNone(entry)
        self.assertEqual(entry['value']['book_id'], '100')

        ht.remove(book_map, '100')
        self.assertEqual(ht.size(book_map), 148)
        self.assertFalse(ht.contains(book_map, '100'))

        lst_keys = ht.keySet(book_map)
        self.assertFalse(lt.isEmpty(lst_keys))
        self.assertEqual(lt.size(lst_keys), 148)

        lst_values = ht.valueSet(book_map)
        self.assertFalse(lt.isEmpty(lst_values))
        self.assertEqual(lt.size(lst_values), 148)
Exemple #2
0
    def test_LoadTable(self):
        self.assertEqual(ht.size(self.book_map), 0)
        self.assertTrue(ht.isEmpty(self.book_map))

        input_file = csv.DictReader(open(self.booksfile))
        for book in input_file:
            ht.put(self.book_map, book['book_id'], book, self.compare_book_id)

        self.assertEqual(ht.size(self.book_map), 149)
        self.assertTrue(ht.contains(self.book_map, '100',
                                    self.compare_book_id))

        entry = ht.get(self.book_map, '100', self.compare_book_id)
        self.assertIsNotNone(entry)
        self.assertEqual(entry['value']['book_id'], '100')

        ht.remove(self.book_map, '100', self.compare_book_id)
        self.assertEqual(ht.size(self.book_map), 148)
        self.assertFalse(
            ht.contains(self.book_map, '100', self.compare_book_id))

        lst_keys = ht.keySet(self.book_map)
        self.assertFalse(lt.isEmpty(lst_keys))
        self.assertEqual(lt.size(lst_keys), 148)

        lst_values = ht.valueSet(self.book_map)
        self.assertFalse(lt.isEmpty(lst_values))
        self.assertEqual(lt.size(lst_values), 148)
Exemple #3
0
def countConnectedComponents (catalog):
    """
    Retorna la cantidad de componentes conectados del grafo de revisiones
    """
    counter=0
    list_nodes=g.vertices(catalog['delayGraph'])
    total= g.numVertex(catalog['delayGraph'])
    for i in range(1,lt.size(list_nodes)+1):
        node=lt.getElement(list_nodes,i)
        if not map.contains(catalog['visitedMap'],node):
            depth_first_search(catalog,node)
            counter+=1
        sub_total=map.size(catalog['visitedMap'])
        if sub_total==total:
            break
    return counter
Exemple #4
0
def getPath(catalog, source, dst):
    """
    Retorna el camino, si existe, entre vertice origen y destino
    """
    mapa = catalog['marcas_dfs']
    grafo = catalog['reviewGraph']
    path = catalog['path_dfs']
    if dst == source:
        return path
    if map.size(mapa) == 0:
        dbs.depth_first_search(grafo, mapa, source)

    nod_bus = map.get(mapa, dst)
    if nod_bus != None:
        new_node = nod_bus['predecesor']
        lt.addFirst(path, new_node)
        getPath(catalog, source, new_node)

    else:
        return None
Exemple #5
0
def getPath (catalog, source, dst):
    """
    Retorna el camino, si existe, entre vertice origen y destino
    """
    mapa= catalog['marcas_dfs']
    grafo= catalog['reviewGraph']
    path= catalog['path_dfs']
    if dst==source:
        return path
    if map.size(mapa)==0:
        dbs.depth_first_search(grafo,mapa,source)

    nod_bus =map.get(mapa, dst)
    if nod_bus != None:
        new_node= nod_bus['predecesor']
        lt.addFirst(path,new_node)
        getPath(catalog,source,new_node)

    def carga_bfs(catalog, source):
    search= dbs.newBFS(catalog['reviewGraph'], source)
    catalog['marcas_bfs']= search['visitedMap']

def path_small(catalog, source, dst):

    mapa= catalog['marcas_bfs']
    path= catalog['path_bfs']
    if dst==source:
        return path
    if mapa == None:
        carga_bfs(catalog, source)
    nod_bus=map.get(mapa, dst) 
    if nod_bus != None:
        new_node= nod_bus['predecesor']
        lt.addFirst(path,new_node)
        path_small(catalog,source,new_node)
    else:
        return None
Exemple #6
0
    Carga las peliculas en la estructura de datos
    """
    controller.loadData(catalog)


"""
Menu principal
"""
while True:
    printMenu()
    inputs =input('Seleccione una opción para continuar\n')
    if int(inputs[0])==1:
        print("Cargando información de los archivos ....")
        catalog = initCatalog ()
        loadData (catalog)
        print ('Mapa Libros cargados: ' + str(map.size(catalog['booksMap'])))
        print ('Lista Libros cargados: ' + str(lt.size(catalog['booksList'])))
        print ('Autores cargados: ' + str(map.size(catalog['authors'])))
        
    elif int(inputs[0])==2:
        bookTitle = input("Nombre del libro a buscar: ")
        book = controller.getBookInfo (catalog, bookTitle)
        if book:
            print("Libro encontrado:",book['title'],",Rating:",book['average_rating'])
        else:
            print("Libro No encontrado")    

    elif int(inputs[0])==3:
        authorName = input("Nombre del autor a buscar: ")
        author = controller.getAuthorInfo (catalog, authorName)
        if author:
Exemple #7
0
    Carga las peliculas en la estructura de datos
    """
    controller.loadData(catalog)


"""
Menu principal
"""
while True:
    printMenu()
    inputs =input('Seleccione una opción para continuar\n')
    if int(inputs[0])==1:
        print("Cargando información de los archivos ....")
        catalog = initCatalog ()
        loadData (catalog)
        print ('Mapa peliculas cargados: ' + str(map.size(catalog['MovieMap_title'])))
        print ('Lista peliculas cargados: ' + str(lt.size(catalog['MovieList'])))
        print ('Actores cargados: ' + str(map.size(catalog['Actors'])))
        print ('Directores_id cargados: ' + str(map.size(catalog['Directors_id'])))
        print ('Directores cargados_name: ' + str(map.size(catalog['Directors_name'])))
        print ('generos cargados: ' + str(map.size(catalog['generos'])))
        
        
    elif int(inputs[0])==2:
        bookTitle = input("Nombre del libro a buscar: ")
        book = controller.getBookInfo (catalog, bookTitle)
        if book:
            print("Libro encontrado:",book['title'],",Rating:",book['average_rating'])
        else:
            print("Libro No encontrado")    
    elif int(inputs[0])==5:
Exemple #8
0
    """
    controller.loadData(catalog)


"""
Menu principal
"""
while True:
    printMenu()
    inputs = input('Seleccione una opción para continuar\n')
    if int(inputs[0]) == 1:
        print("Cargando información de los archivos ....")
        catalog = initCatalog()
        loadData(catalog)
        print('Mapa Peliculas cargadas: ' +
              str(map.size(catalog['moviesMap'])))
        print('Lista Peliculas cargadas: ' +
              str(lt.size(catalog['moviesList'])))
        print('Directores cargados: ' + str(map.size(catalog['directors'])))
        print('Mapa ids cargados:' + str(map.size(catalog['idMap'])))
        print('Mapa géneros cargados:' + str(map.size(catalog['genres'])))

    elif int(inputs[0]) == 2:
        movieTitle = input("Nombre de la película a buscar: ")
        t1_start = process_time()  #tiempo inicial
        found = controller.getMovieInfo(catalog, movieTitle)
        if found == 'no':
            print("Película no encontrada")
        t1_stop = process_time()  #tiempo final
        print("Tiempo de ejecución:", t1_stop - t1_start, " segundos")
Exemple #9
0
"""
datos_cargados = False
while True:
    printMenu()
    inputs =input('Seleccione una opción para continuar\n')
    if int(inputs[0])==1: # 1- Cargar información
        print("Cargando información de los archivos ....")
        catalog = initCatalog ()
        loadData (catalog)
        """
        print ('Mapa Libros cargados: ' + str(map.size(catalog['booksMap'])))
        print ('Lista Libros cargados: ' + str(lt.size(catalog['booksList'])))
        print ('Autores cargados: ' + str(map.size(catalog['authors'])))
        """
        print ('Lista: Películas cargadas: ' + str(lt.size(catalog['moviesList'])))
        print ('Mapa: Películas cargadas: ' + str(map.size(catalog['moviesMap'])))
        print ('Mapa: Actores cargados: ' + str(map.size(catalog['actors'])))
        print ('Mapa: Directores cargados: ' + str(map.size(catalog['directors'])))
        print ('Mapa: Géneros cargados: ' + str(map.size(catalog['genres'])))

        datos_cargados = True
        
    elif int(inputs[0])==2: # 2- Buscar película por título
        if not datos_cargados:
            """
            bookTitle = input("Nombre del libro a buscar: ")
            book = controller.getBookInfo (catalog, bookTitle)
            if book:
                print("Libro encontrado:",book['title'],",Rating:",book['average_rating'])
            else:
                print("Libro No encontrado")
Exemple #10
0
def numVertex(graph):
    """
    Retorna el numero de vertices en el  grafo graph
    """
    return map.size(graph['vertices'])
Exemple #11
0
        print('No se encontraron peliculas')
    print('\n')


"""
Menu principal
"""
while True:
    printMenu()
    inputs = input('Seleccione una opción para continuar\n')
    if int(inputs[0]) == 1:
        print("Cargando información de los archivos ....")
        catalog = initCatalog()
        loadData(catalog)
        print('Mapa Peliculas cargadas: ' +
              str(map.size(catalog['moviesMap'])))
        print('Lista Peliculas cargadas: ' +
              str(lt.size(catalog['moviesList'])))
        print('Directores cargados: ' + str(map.size(catalog['directors'])) +
              "\n")

    elif int(inputs[0]) == 2:
        name = input("Nombre del director a buscar: ")
        director = controller.getDirectorInfo(catalog, name)
        if director:
            print("Director  encontrado:", director['name'])
            movies = controller.getMoviesByDirector(catalog, director['name'],
                                                    6)
            printBestMoviesDirector(movies, 6)
        else:
            print("Director No encontrado")
Exemple #12
0
    print('\n')


"""
Menu principal
"""
while True:

    printMenu()
    inputs = input('Seleccione una opción para continuar\n')
    if int(inputs[0]) == 1:
        print("Cargando información de los archivos ....")
        catalog = initCatalog()
        loadData(catalog)
        print('Mapa Peliculas cargadas: ' +
              str(map.size(catalog['moviesMap'])))
        #print ('Lista Peliculas cargadas: ' + str(lt.size(catalog['moviesList'])))
        print('Directores cargados: ' + str(map.size(catalog['directors'])))
        print('Actores cargados: ' + str(map.size(catalog['actors'])))
        print('Generos cargados: ' + str(map.size(catalog['genres'])))
        print('Mapa Titulos: ' + str(map.size(catalog['titlesMap'])))
        print('Mapa Ids Directores: ' +
              str(map.size(catalog['id_directorMap'])) + "\n")

    elif int(inputs[0]) == 2:

        try:
            catalog
            name = input("Nombre del director a buscar: ")
            director = controller.getDirectorInfo(catalog, name)
            if director:
Exemple #13
0
            print ('Titulo: ' + movie['title'] + ' Rating: ' + str(movie['vote_average']))
    else:
        print ('No se encontraron peliculas')


"""
Menu principal
"""
while True:
    printMenu()
    inputs =input('Seleccione una opción para continuar\n')
    if int(inputs[0])==1:
        print("Cargando información de los archivos ....")
        catalog = initCatalog ()
        loadData (catalog)
        print ('Mapa peliculas cargadas: ' + str(map.size(catalog['moviesMapTitle'])))
        print ('Lista peliculas cargadas: ' + str(lt.size(catalog['moviesList'])))
        print ('Directores cargados: ' + str(map.size(catalog['directorsName'])))
        print ('Actores cargados: ' + str(map.size(catalog['actorsName'])))
        print ('Géneros cargados: ' + str(map.size(catalog['genres'])))
        
    elif int(inputs[0])==2:
        movieTitle = input("Nombre del director a buscar: ")
        t1_start = tt.time() #tiempo inicial
        movie = controller.getMoviesbyDirectorVote(catalog, movieTitle)
        if movie:
            print("El número de películas del director "+movieTitle+" con votación positiva es: "+ str(lt.size(movie)))
        else:
            print("Director no encontrado")
        t1_stop = tt.time() #tiempo final   
        print("Tiempo de ejecución requerimiento 1 :",t1_stop-t1_start," segundos")