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 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 edges(graph): """ Retorna una lista con todos los arcos del grafo graph """ lstmap = map.valueSet(graph['vertices']) lstresp = lt.newList() itervertex = it.newIterator(lstmap) while it.hasNext(itervertex): lstedge = it.next(itervertex) iteredge = it.newIterator(lstedge) while (it.hasNext(iteredge)): edge = it.next(iteredge) if not (lt.isPresent(lstresp, edge, e.compareedges)): lt.addLast(lstresp, edge) return lstresp
def main(): while True: printMenu() inputs = input('Seleccione una opción para continuar\n') if int(inputs[0]) == 1: print("Cargando información de los archivos ....") print("Recursion Limit:", sys.getrecursionlimit()) catalog = initCatalog() loadData(catalog) print('Tamaño Lista accidentes cargados: ' + str(lt.size(catalog['AccidentList']))) print('Tamaño árbol Accidentes por ID: ' + str(tree.size(catalog['AccidentIDTree']))) print('Tamaño árbol accidentes por fecha : ' + str(tree.size(catalog['yearsTree']))) print('Altura árbol por ID: ' + str(tree.height(catalog['AccidentIDTree']))) print('Altura árbol por fecha: ' + str(tree.height(catalog['yearsTree']))) elif int(inputs[0]) == 2: title = input("Nombre del titulo a buscar: ") book = controller.getBookTree(catalog, title) if book: print("Libro encontrado:", book['title'], book['average_rating']) else: print("Libro No encontrado") elif int(inputs[0]) == 3: date = input("Ingrese la fecha en formato anio-mes-dia: ") rank = controller.rankBookTree(catalog, date) print("Hay ", rank, " accidentes antes de " + date) elif int(inputs[0]) == 4: fecha = input('ingrese la fehca de la forma %YYYY-%mm-%dd: ') estado = controller.getEstate(catalog, fecha) if estado: print('el estado con mayor cantidad de accidentes en la fecha', fecha, 'es ', str(estado['Estado']), 'con ', str(estado['Accidentes']), 'accidentes.') else: print("no se encontro estado ") elif int(inputs[0]) == 5: year = input( "Ingrese la fecha a consultar de la forma %YYYY-%mm-%dd::") response = controller.getBookByYearRating(catalog, year) if response: print(response) else: print("No se encontraron Accidentes para la fecha", year) elif int(inputs[0]) == 6: years = input( "Ingrese los años desde y hasta (%YYYY-%mm-%dd %Y-%m-%dd):") counter = controller.getBooksCountByYearRange(catalog, years) if counter: print("Cantidad de accidentes entre las fechas", years, ":") lista = map.valueSet(counter) for i in range(1, lt.size(lista)): print(lt.getElement(lista, i)) else: print("No se encontraron accidentes para el rango de fechas", years) else: sys.exit(0) sys.exit(0)