def test_push(data, result_one, result_two):
    """Test the push method."""
    test_list = doubly_linked.DoubleLinkedList()
    for i in data:
        test_list.push(i)
    assert test_list.head.value == result_one
    assert test_list.head.next.next.value == result_two
def test_append(data, result_one, result_two):
    """Test the append method."""
    test_list = doubly_linked.DoubleLinkedList()
    for i in data:
        test_list.append(i)
    assert test_list.tail.value == result_one
    assert test_list.tail.behind.behind.value == result_two
def test_size(data, result):
    """Test if list size is properly incremented."""
    test_list = doubly_linked.DoubleLinkedList(data)
    assert test_list.size() == result
    test_list.push("test_push")
    assert test_list.size() == result + 1
    test_list.pop()
    assert test_list.size() == result
def test_shift_empty_list():
    """Test if shift raises an error when list is empty."""
    test_list = doubly_linked.DoubleLinkedList()
    with pytest.raises(IndexError):
        test_list.shift()
def test_shift(data, result_one, result_two):
    """Test the shift method."""
    test_list = doubly_linked.DoubleLinkedList(data)
    assert test_list.shift() == result_one
    assert test_list.shift() == result_two
def test_pop_empty_list():
    """Test if pop raises an error when list is empty."""
    test_list = doubly_linked.DoubleLinkedList()
    with pytest.raises(IndexError):
        test_list.pop()
def test_pop(data, result_one, result_two):
    """Test the pop method."""
    test_list = doubly_linked.DoubleLinkedList(data)
    assert test_list.pop() == result_one
    assert test_list.pop() == result_two
def test_list(data, result_one, result_two):
    """Ensure proper assignment."""
    test_list = doubly_linked.DoubleLinkedList(data)
    assert test_list.head.value == result_one
    assert test_list.head.next.next.value == result_two
def test_shift_last_node_removes_head_and_tail():
    """Test to ensure that shifting the final node from a list leaves no head or tail."""
    test_list = doubly_linked.DoubleLinkedList([1])
    test_list.shift()
    assert test_list.head is None
    assert test_list.tail is None
Esempio n. 10
0
def test_remove_empty_list():
    """Test if remove raises an error when list is empty."""
    test_list = doubly_linked.DoubleLinkedList()
    with pytest.raises(IndexError):
        test_list.remove(5)
Esempio n. 11
0
def test_remove_where_node_is_not_there(data, delete_me):
    """Test if remove raises an error if node is not found."""
    test_list = doubly_linked.DoubleLinkedList(data)
    with pytest.raises(IndexError):
        test_list.remove(delete_me)
Esempio n. 12
0
def test_remove(data, delete_me, result):
    """Test if list is appropriately changed when node is removed."""
    test_list = doubly_linked.DoubleLinkedList(data)
    test_list.remove(delete_me)
    assert test_list.head.next.next.next.value == result