示例#1
0
def test_linked_list_can_set_and_get_head():
    node1 = LinkedListNode(1, None, None)
    node2 = LinkedListNode(2, None, node1)
    node1.set_next(node2)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    assert linked_list.get_head() == node1
示例#2
0
def test_linked_list_find_returns_index_when_value_is_present():
    node1 = LinkedListNode(1, None, None)
    node2 = LinkedListNode(4, None, node1)
    node1.set_next(node2)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    result = linked_list.find(4)
    assert result == 1
示例#3
0
def test_linked_list_find_returns_minus_one_when_absent():
    node1 = LinkedListNode(1, None, None)
    node2 = LinkedListNode(2, None, node1)
    node1.set_next(node2)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    result = linked_list.find(3)
    assert result == -1
示例#4
0
def test_linked_list_insert_adds_node_to_front_with_index_zero():
    node1 = LinkedListNode(2, None, None)
    node2 = LinkedListNode(4, None, node1)
    node1.set_next(node2)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    new_node = LinkedListNode(1, None, None)
    linked_list.insert(0, new_node)
    assert linked_list.get_head() == new_node
    assert linked_list.get_head().get_next() == node1
    assert node1.get_previous() == new_node
示例#5
0
def test_linked_list_delete_removes_head_with_index_zero():
    node1 = LinkedListNode(1, None, None)
    node2 = LinkedListNode(4, None, node1)
    node1.set_next(node2)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    linked_list.delete(0)
    assert linked_list.get_head() == node2
    assert node2.get_previous() == None
示例#6
0
def test_linked_list_delete_raises_exception_when_index_too_high():
    node1 = LinkedListNode(1, None, None)
    node2 = LinkedListNode(4, None, node1)
    node1.set_next(node2)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    with pytest.raises(Exception):
        linked_list.delete(4)
示例#7
0
def test_linked_list_insert_adds_node_at_appropriate_index():
    node1 = LinkedListNode(2, None, None)
    node2 = LinkedListNode(4, None, node1)
    node1.set_next(node2)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    new_node = LinkedListNode(3, None, None)
    linked_list.insert(1, new_node)
    assert linked_list.get_head().get_next() == new_node
    assert new_node.get_previous() == node1
    assert node2.get_previous() == new_node
    assert new_node.get_next() == node2
示例#8
0
def test_linked_list_insert_raises_exception_when_index_too_high():
    node1 = LinkedListNode(1, None, None)
    node2 = LinkedListNode(4, None, node1)
    node1.set_next(node2)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    new_node = LinkedListNode(6, None, None)
    with pytest.raises(Exception):
        linked_list.insert(4, new_node)
示例#9
0
def test_linked_list_delete_removes_node_at_end_of_list():
    node1 = LinkedListNode(1, None, None)
    node2 = LinkedListNode(4, None, node1)
    node3 = LinkedListNode(5, None, node2)
    node1.set_next(node2)
    node2.set_next(node3)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    linked_list.delete(2)
    assert node2.get_next() is None
示例#10
0
def test_linked_list_insert_adds_node_at_last_index():
    node1 = LinkedListNode(2, None, None)
    node2 = LinkedListNode(4, None, node1)
    node1.set_next(node2)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    new_node = LinkedListNode(5, None, None)
    linked_list.insert(2, new_node)
    assert new_node.get_previous() == node2
    assert node2.get_next() == new_node
    assert new_node.get_next() == None
示例#11
0
def test_linked_list_delete_removes_node_with_given_index():
    node1 = LinkedListNode(1, None, None)
    node2 = LinkedListNode(4, None, node1)
    node3 = LinkedListNode(5, None, node2)
    node1.set_next(node2)
    node2.set_next(node3)
    linked_list = LinkedList()
    linked_list.set_head(node1)
    linked_list.delete(1)
    assert node1.get_next() == node3
    assert node3.get_previous() == node1
示例#12
0
def test_linked_list_can_be_created_with_proper_parameters():
    result = LinkedList()
    assert result.get_head() is None