Пример #1
0
def test_update():
    n = 50
    a = np.random.choice(1000, n, replace=True).tolist()
    heap = MinHeap(a, modifiable=True)
    u_id = np.random.choice(n, 10, replace=False).tolist()
    u_val = np.random.choice(1000, 10, replace=True).tolist()
    if n-1 not in u_id:
        u_id.append(n-1)
        u_val.append(np.random.randint(1000))
    nodes = [heap.L[i] for i in u_id]
    for node, newkey in zip(nodes, u_val):
        heap.update(node, newkey)
    b = sorted(heap.L)
    c = []
    while heap:
        c.append(heap.pop())
    assert b == c