def test_pop_empty():
    """Test that popping an empty list raises an index error."""
    from priorityq import PriorityQ
    instance = PriorityQ()

    with pytest.raises(IndexError):
        instance.pop()
def test_pop_empty():
    """Test that popping an empty list raises an index error."""
    from priorityq import PriorityQ
    instance = PriorityQ()

    with pytest.raises(IndexError):
        instance.pop()
Esempio n. 3
0
 def test_pop_with_2_elem(self):
     pri1, val1 = 2, 'a'
     pri2, val2 = 5, 'b'
     pri3, val3 = 1, 'c'
     pri4, val4 = 7, 'f'
     pri5, val5 = 1, 'd'
     pri6, val6 = 3, 'e'
     testq = PriorityQ()
     testq.insert(pri1, val1)
     testq.insert(pri2, val2)
     testq.insert(pri3, val3)
     testq.insert(pri4, val4)
     testq.insert(pri5, val5)
     testq.insert(pri6, val6)
     testq.pop()
     expected = [[None], [pri3, val5], [pri6, val6], [pri1, val1],
                 [pri4, val4], [pri2, val2]]
     actual = testq.harray
     self.assertEquals(expected, actual)
Esempio n. 4
0
def test_pop_values_of_same_priority_acts_like_queue(amount):
    """Test that popping only item from queue empties it."""
    from random import randint
    from priorityq import PriorityQ
    q = PriorityQ()
    random_nums = [randint(0, 100) for _ in range(amount)]
    for n in random_nums:
        q.insert(n)
    popped = [q.pop() for _ in random_nums]
    assert popped == random_nums
def test_insert():
    from priorityq import PriorityQ
    push_list = [(2, 'maintenance'), (1, 'staff mtg'), (1, 'stand-up'),
                 (0, 'server crash')]

    pop_list = ['server crash', 'staff mtg', 'stand-up', 'maintenance']

    test_q = PriorityQ()
    for pri, val in push_list:
        test_q.insert(pri, val)

    for item in pop_list:
        assert test_q.pop() == item
Esempio n. 6
0
 def test_pop_with_1_elem(self):
     pri1, val1 = 2, 'a'
     pri2, val2 = 5, 'b'
     pri3, val3 = 1, 'c'
     pri4, val4 = 4, 'd'
     pri5, val5 = 3, 'e'
     testq = PriorityQ()
     testq.insert(pri1, val1)
     testq.insert(pri2, val2)
     testq.insert(pri3, val3)
     testq.insert(pri4, val4)
     testq.insert(pri5, val5)
     x = testq.pop()
     self.assertEquals(x, 'c')
Esempio n. 7
0
def test_pop_from_random_p_q_with_all_diff_priority_in_sorted_order():
    """Test popping all the items from a priority queue are in sorted order.

    All items inserted have the same priority as their value, so when
    removed they should be in sorted order.
    """
    from priorityq import PriorityQ
    from random import randint
    random_nums = list(set([randint(0, 100) for _ in range(20)]))
    q = PriorityQ()
    for n in random_nums:
        q.insert(n, n)
    popped = [q.pop() for _ in range(len(q._all_values) - 1)]
    assert popped == sorted(random_nums, reverse=True)
def test_insert():
    from priorityq import PriorityQ
    push_list = [(2, 'maintenance'),
                 (1, 'staff mtg'),
                 (1, 'stand-up'),
                 (0, 'server crash')]

    pop_list = ['server crash', 'staff mtg', 'stand-up', 'maintenance']

    test_q = PriorityQ()
    for pri, val in push_list:
        test_q.insert(pri, val)

    for item in pop_list:
        assert test_q.pop() == item
def test_empty_instantiation_args():
    tpq = PriorityQ()
    with pytest.raises(IndexError):
        tpq.pop()
def test_valid_instantiation_args(input):
    tpq = PriorityQ(input)
    assert tpq.pop() is not None
Esempio n. 11
0
def pop_empty():
    priorityq = PriorityQ()
    with pytest.raises(IndexError):
        priorityq.pop()
Esempio n. 12
0
def test_pop_last():
    priorityq = PriorityQ()
    priorityq.insert(5, 2)
    assert priorityq.pop() == 5
    assert priorityq.list == []