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)
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)
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
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
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
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:
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:
""" 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")
""" 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")
def numVertex(graph): """ Retorna el numero de vertices en el grafo graph """ return map.size(graph['vertices'])
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")
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:
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")