예제 #1
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)
예제 #2
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)
예제 #3
0
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
예제 #4
0
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)