示例#1
0
def test_remove():
    """ Test remove """
    l = DoubleLinkedList()
    with pytest.raises(LookupError):
        l.remove(1)
    for i in range(1, 4):
        l.append(i)
    assert l.remove(2)
    assert l.head.value == 1
    assert l.head.next.value == 3
    assert l.tail.value == 3
    assert l._size == 2
示例#2
0
def test_double_linked_list():
    """ Test list creation and insert method """
    l = DoubleLinkedList()
    assert l.head == None
    assert l.tail == None
    assert l._size == 0
    for element in [1, 2]:
        l.append(element)
    print('Value: {}, Type: {}'.format(l.head.value, type(l.head.value)))
    assert l.head.value == 1
    assert l.tail.value == 2
    assert l._size == 2
    assert l.head.next.value == 2
    assert l.tail.next == None
示例#3
0
def test_append():
    """ Test append method """
    l = DoubleLinkedList()
    l.append(1)
    assert l.tail.value == 1
    assert l.tail.next == None
    assert l.head.value == 1
    assert l._size == 1
    l.append(2)
    assert l.tail.value == 2
    assert l.tail.next == None
    assert l.head.value == 1
    assert l.head.next.value == 2
    assert l._size == 2
def test_append():
    """ Test append method """
    l = DoubleLinkedList()
    l.append(1)
    assert l.tail.value == 1
    assert l.tail.next == None
    assert l.head.value == 1
    assert l._size == 1
    l.append(2)
    assert l.tail.value == 2
    assert l.tail.next == None
    assert l.head.value == 1
    assert l.head.next.value == 2
    assert l._size == 2
def test_double_linked_list():
    """ Test list creation and insert method """
    l = DoubleLinkedList()
    assert l.head == None
    assert l.tail == None
    assert l._size == 0
    for element in [1,2]:
        l.append(element)
    print('Value: {}, Type: {}'.format(l.head.value, type(l.head.value)))
    assert l.head.value == 1
    assert l.tail.value == 2
    assert l._size == 2
    assert l.head.next.value == 2
    assert l.tail.next == None
示例#6
0
def test_shift():
    """ Test shift """
    l = DoubleLinkedList()
    with pytest.raises(LookupError):
        l.shift()
    for i in range(1, 4):
        l.append(i)
    assert l._size == 3
    assert l.shift() == 3
    assert l.head.value == 1
    assert l.tail.value == 2
    assert l._size == 2
    assert l.shift() == 2
    assert l.head.value == 1
    assert l.tail.value == 1
    assert l._size == 1
def test_shift():
    """ Test shift """
    l = DoubleLinkedList()
    with pytest.raises(LookupError):
        l.shift()
    for i in range(1,4):
        l.append(i)
    assert l._size == 3
    assert l.shift() == 3
    assert l.head.value == 1
    assert l.tail.value == 2
    assert l._size == 2
    assert l.shift() == 2
    assert l.head.value == 1
    assert l.tail.value == 1
    assert l._size == 1
def test_remove():
    """ Test remove """
    l = DoubleLinkedList()
    with pytest.raises(LookupError):
        l.remove(1)
    for i in range(1,4):
        l.append(i)
    assert l.remove(2)
    assert l.head.value == 1
    assert l.head.next.value == 3
    assert l.tail.value == 3
    assert l._size == 2
    
    
    
    
    
    
    
    
    
    
示例#9
0
class Deque(object):
    '''Deque is a composition of Double Linked List'''

    def __init__(self, input=None):
        '''create doubly linked list'''
        self.deque = DoubleLinkedList(input)

    def append(self, val):
        self.deque.append(val)

    def append_left(self, val):
        self.deque.insert(val)

    def pop(self):
        return self.deque.pop()

    def pop_left(self):
        return self.deque.shift()

    def peek(self):
        try:
            return self.deque.head.data
        except AttributeError:
            return None

    def peek_left(self):
        try:
            return self.deque.tail.data
        except AttributeError:
            return None

    def size(self):
        size = 0
        current_spot = self.deque.head
        while current_spot:
            size += 1
            current_spot = current_spot.toward_tail
        return size
示例#10
0
class Deque(object):
    '''Deque is a composition of Double Linked List'''
    def __init__(self, input=None):
        '''create doubly linked list'''
        self.deque = DoubleLinkedList(input)

    def append(self, val):
        self.deque.append(val)

    def append_left(self, val):
        self.deque.insert(val)

    def pop(self):
        return self.deque.pop()

    def pop_left(self):
        return self.deque.shift()

    def peek(self):
        try:
            return self.deque.head.data
        except AttributeError:
            return None

    def peek_left(self):
        try:
            return self.deque.tail.data
        except AttributeError:
            return None

    def size(self):
        size = 0
        current_spot = self.deque.head
        while current_spot:
            size += 1
            current_spot = current_spot.toward_tail
        return size
def test_append_list():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList((4, 5, 65))
    new_list.append([45, 'nine', False])
    assert new_list.tail.data == [45, 'nine', False]
def test_append_int():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList((4, 5, 65))
    new_list.append(45)
    assert new_list.tail.data == 45
def test_append_list():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList((4, 5, 65))
    new_list.append([45, 'nine', False])
    assert new_list.tail.data == [45, 'nine', False]
def test_append_int():
    from double_linked import DoubleLinkedList
    new_list = DoubleLinkedList((4, 5, 65))
    new_list.append(45)
    assert new_list.tail.data == 45