예제 #1
0
def req2(lst, function, criteria, n):

    t1_start = process_time()
    result = lt.newList('ARRAY_LIST')
    nombres = lt.newList('ARRAY_LIST')
    votos = lt.newList('ARRAY_LIST')
    sh.shellSort(lst, function, criteria)
    #sel.selectionSort(lst, function, criteria)
    #ins.insertionSort(lst,function,criteria)

    for i in range(n + 1):
        lt.addLast(result, lt.getElement(lst, i))
    iterator = it.newIterator(result)
    while it.hasNext(iterator):
        element = it.next(iterator)
        lt.addLast(nombres, element['title'])
        lt.addLast(votos, element[criteria])
    final = lt.newList('ARRAY_LIST')
    for i in range(n + 1):
        lt.addLast(final, (lt.getElement(nombres, i), lt.getElement(votos, i)))
    lt.addLast(final, lt.getElement(final, 0))
    lt.removeFirst(final)
    lt.removeFirst(final)
    t1_stop = process_time()
    print('El tiempo fue de ', t1_stop - t1_start, ' segundos')
    return final
예제 #2
0
def req6(lst1, criteria1, column1, function, criteriaf, n):
    porgenero = lt.newList("ARRAY_LIST")
    iterator = it.newIterator(lst1)
    lt.addFirst(porgenero, '')
    while it.hasNext(iterator):
        element = it.next(iterator)
        if criteria1.lower() in element[column1].lower():
            lt.addLast(porgenero, element)
    lt.removeFirst(porgenero)
    listado = req2(porgenero, function, criteriaf, n)
    return listado
def test_agregarYquitar():
    """
    Prueba que al hacer varios ordnamientos el orden debe mantenerse asi se cambien los elementos
    Se requiere tener la lista ordenada, luego desordenada y probar que genera excepcion
    """
    lst = slt.newList(list_type)
    slt.addFirst(lst, book10)
    slt.addFirst(lst, book9)
    slt.addFirst(lst, book8)
    slt.addFirst(lst, book7)
    slt.addFirst(lst, book6)
    slt.addFirst(lst, book5)
    slt.addFirst(lst, book4)
    slt.addFirst(lst, book3)
    slt.addFirst(lst, book2)
    slt.addFirst(lst, book1)
    probarOrden(lst)  #Prueba que al inicio la lista esté en orden
    slt.addFirst(lst, slt.removeLast(lst))
    slt.addLast(lst, slt.removeFirst(lst))
    slt.addFirst(lst, slt.removeLast(lst))
    with pytest.raises(Exception):
        probarOrden(lst)
    sort.shellSort(lst, less)
    probarOrden(lst)
def test_ManyElements():
    """
    Con muchos elementos en la lista, en donde identificadores se repiten
    Deben aparecer consecutivos aquellos con id igual
    """
    lst = slt.newList(list_type)
    slt.addFirst(lst, book5)
    slt.addFirst(lst, book6)
    slt.addFirst(lst, book14)
    slt.addFirst(lst, book3)
    slt.addFirst(lst, book13)
    slt.addFirst(lst, book10)
    slt.addFirst(lst, book1)
    slt.addFirst(lst, book12)
    slt.addFirst(lst, book2)
    slt.addFirst(lst, book8)
    slt.addFirst(lst, book4)
    slt.addFirst(lst, book11)
    slt.addFirst(lst, book7)
    slt.addFirst(lst, book9)

    print(
        "Repeated elements:----------------------------------------------------"
    )
    iterator = it.newIterator(lst)
    while it.hasNext(iterator):
        element = it.next(iterator)
        result = "".join(
            str(key) + ": " + str(value) + ",  "
            for key, value in element.items())
        print(result)
    print("sorting ....")
    sort.shellSort(lst, less)
    assert slt.removeFirst(lst) == book1
    assert slt.removeFirst(lst) == book2
    assert slt.removeFirst(lst) == book3
    assert slt.removeFirst(lst) == book4
    assert slt.removeFirst(lst) == book5
    assert slt.removeFirst(lst) == book6
    assert slt.removeFirst(lst) == book7
    assert slt.removeFirst(lst) == book11
    assert slt.removeFirst(lst) == book8
    assert slt.removeFirst(lst) == book12
    assert slt.removeFirst(lst) == book13
    assert slt.removeFirst(lst) == book9
    assert slt.removeFirst(lst) == book10
    assert slt.removeFirst(lst) != book14
def test_removeFirst(lstbooks, books):
    assert lt.size(lstbooks) == 5
    lt.removeFirst(lstbooks)
    assert lt.size(lstbooks) == 4
    book = lt.getElement(lstbooks, 1)
    assert book == books[1]
예제 #6
0
def test_removeFirst(lstmovies, movies):
    assert lst.size(lstmovies) == 5
    lst.removeFirst(lstmovies)
    assert lst.size(lstmovies) == 4
    movie = lst.getElement(lstmovies, 1)
    assert movie == movies[1]