Exemplo n.º 1
0
    def test_insert(self):
        s_list = LinkedList2()
        s_list.add_in_tail(Node(1))
        s_list.add_in_tail(Node(2))
        s_list.add_in_tail(Node(4))
        s_list.add_in_tail(Node(5))

        #insert in middle of list
        s_list.insert(Node(2), Node(3))
        self.assertEqual(s_list.find(3).value, 3)
        self.assertEqual(s_list.find(3).next.value, 4)
        self.assertEqual(s_list.find(3).prev.value, 2)
        self.assertEqual(s_list.head.value, 1)
        self.assertEqual(s_list.tail.value, 5)

        #insert in tail of list
        s_list.insert(Node(5), Node(99))
        self.assertEqual(s_list.find(99).value, 99)
        self.assertEqual(s_list.find(99).next, None)
        self.assertEqual(s_list.find(99).prev.value, 5)
        self.assertEqual(s_list.find(1).prev, None)
        self.assertEqual(s_list.find(1).next.value, 2)
        self.assertEqual(s_list.head.value, 1)
        self.assertEqual(s_list.tail.value, 99)

        #insert after head of list
        s_list.insert(Node(1), Node(11))
        self.assertEqual(s_list.find(11).value, 11)
        self.assertEqual(s_list.find(11).next.value, 2)
        self.assertEqual(s_list.find(11).prev.value, 1)
        self.assertEqual(s_list.find(1).prev, None)
        self.assertEqual(s_list.find(1).next.value, 11)
        self.assertEqual(s_list.head.value, 1)
        self.assertEqual(s_list.tail.value, 99)
Exemplo n.º 2
0
    def test_add_in_head(self):
        list3 = LinkedList2()
        n1 = Node(55)
        n2 = Node(12)
        n3 = Node(55)
        n4 = Node(10)
        n5 = Node(20)
        list3.add_in_tail(n1)
        list3.add_in_tail(n2)
        list3.add_in_tail(n3)

        list3.add_in_head(n4)
        self.assertEqual(list3.get_all(), [10, 55, 12, 55])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head(), n4)
        self.assertEqual(n4.next, n1)
        self.assertEqual(n1.prev, n4)

        list3.add_in_head(n5)
        self.assertEqual(list3.get_all(), [20, 10, 55, 12, 55])
        self.assertEqual(list3.get_head(), n5)
        self.assertEqual(n5.next, n4)
        self.assertEqual(n4.prev, n5)

        list3.add_in_head(None)
        self.assertEqual(list3.get_all(), [20, 10, 55, 12, 55])
        self.assertEqual(list3.get_head(), n5)
        self.assertEqual(n5.next, n4)
        self.assertEqual(n4.prev, n5)
Exemplo n.º 3
0
    def test_add_in_tail(self):
        s_list = LinkedList2()

        #add in empty list
        s_list.add_in_tail(Node(4))
        self.assertEqual(s_list.find(4).value, 4)
        self.assertEqual(s_list.head.value, 4)
        self.assertEqual(s_list.tail.value, 4)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next, None)
        self.assertEqual(s_list.tail.prev, None)
        self.assertEqual(s_list.tail.next, None)

        #add in non empty list
        s_list.add_in_tail(Node(8))
        self.assertEqual(s_list.find(8).value, 8)
        self.assertEqual(s_list.head.value, 4)
        self.assertEqual(s_list.tail.value, 8)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next.value, 8)
        self.assertEqual(s_list.tail.prev.value, 4)
        self.assertEqual(s_list.tail.next, None)

        #add in non empty list
        s_list.add_in_tail(Node(11))
        self.assertEqual(s_list.find(11).value, 11)
        self.assertEqual(s_list.head.value, 4)
        self.assertEqual(s_list.tail.value, 11)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next.value, 8)
        self.assertEqual(s_list.tail.prev.value, 8)
        self.assertEqual(s_list.tail.next, None)

        self.assertEqual(s_list.find(8).prev.value, 4)
        self.assertEqual(s_list.find(8).next.value, 11)
Exemplo n.º 4
0
    def test_add_and_insert_in_tail_for_empty_list(self):
        #add in tail
        s_list = LinkedList2()
        s_list.add_in_tail(Node(11))
        #check head and tail
        self.assertEqual(s_list.head.value, 11)
        self.assertEqual(s_list.tail.value, 11)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.tail.next, None)
        s_list.len()
        self.assertEqual(s_list.len(), 1)

        #insert in list
        s_list = LinkedList2()
        s_list.insert(None, Node(11))
        #check head and tail
        self.assertEqual(s_list.head.value, 11)
        self.assertEqual(s_list.tail.value, 11)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.tail.next, None)
        self.assertEqual(s_list.len(), 1)

        #add in head
        s_list = LinkedList2()
        s_list.add_in_head(Node(11))
        #check head and tail
        self.assertEqual(s_list.head.value, 11)
        self.assertEqual(s_list.tail.value, 11)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.tail.next, None)
        self.assertEqual(s_list.len(), 1)
Exemplo n.º 5
0
    def test_find_all_not_empty(self):
        list2 = LinkedList2()
        n1 = Node(55)
        n2 = Node(12)
        n3 = Node(55)
        list2.add_in_tail(n1)
        list2.add_in_tail(n2)
        list2.add_in_tail(n3)

        self.assertEqual(list2.find_all(n3.value), [n1, n3])
        self.assertEqual(list2.get_head(), n1)
        self.assertEqual(list2.get_tail(), n3)
Exemplo n.º 6
0
    def test_delete_one_node(self):
        s_list = LinkedList2()
        s_list.add_in_tail(Node(1))
        s_list.add_in_tail(Node(2))
        s_list.add_in_tail(Node(4))
        s_list.add_in_tail(Node(5))

        #delete node from head
        s_list.delete(1)
        self.assertEqual(s_list.head.value, 2)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next.value, 4)
        s_list.len()
        self.assertEqual(s_list.len(), 3)

        #delete node from tail
        s_list.delete(5)
        self.assertEqual(s_list.tail.value, 4)
        self.assertEqual(s_list.tail.prev.value, 2)
        self.assertEqual(s_list.len(), 2)

        #delete node from center
        s_list = LinkedList2()
        s_list.add_in_tail(Node(1))
        s_list.add_in_tail(Node(2))
        s_list.add_in_tail(Node(4))
        s_list.add_in_tail(Node(5))
        s_list.delete(2)

        self.assertEqual(s_list.head.value, 1)
        self.assertEqual(s_list.head.next.value, 4)
        self.assertEqual(s_list.head.next.prev.value, 1)
        s_list.len()
        self.assertEqual(s_list.len(), 3)
Exemplo n.º 7
0
    def test_add_in_tail_1el(self):
        list3 = LinkedList2()
        n1 = Node(55)
        n2 = Node(12)
        list3.add_in_tail(n1)

        list3.add_in_tail(n2)
        self.assertEqual(list3.get_all(), [n1.value, n2.value])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head(), n1)
        self.assertEqual(list3.get_tail(), n2)
        self.assertEqual(n1.next, n2)
        self.assertEqual(n2.prev, n1)
Exemplo n.º 8
0
    def test_add_in_head(self):
        s_list = LinkedList2()

        #add in empty list
        s_list.add_in_head(Node(4))
        self.assertEqual(s_list.find(4).value, 4)
        self.assertEqual(s_list.head.value, 4)
        self.assertEqual(s_list.tail.value, 4)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next, None)
        self.assertEqual(s_list.tail.prev, None)
        self.assertEqual(s_list.tail.next, None)
        self.assertEqual(s_list.len(), 1)

        #add in non empty list
        s_list.add_in_head(Node(88))
        self.assertEqual(s_list.find(88).value, 88)
        self.assertEqual(s_list.head.value, 88)
        self.assertEqual(s_list.tail.value, 4)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next.value, 4)
        self.assertEqual(s_list.tail.prev.value, 88)
        self.assertEqual(s_list.tail.next, None)
        s_list.len()
        self.assertEqual(s_list.len(), 2)

        #add in non empty list
        s_list.add_in_head(Node(205))
        self.assertEqual(s_list.find(205).value, 205)
        self.assertEqual(s_list.head.value, 205)
        self.assertEqual(s_list.tail.value, 4)
        self.assertEqual(s_list.head.next.value, 88)
        self.assertEqual(s_list.tail.prev.value, 88)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.tail.next, None)
        self.assertEqual(s_list.len(), 3)

        #add in non empty list
        s_list.add_in_head(Node(35))
        self.assertEqual(s_list.find(35).value, 35)
        self.assertEqual(s_list.head.value, 35)
        self.assertEqual(s_list.tail.value, 4)
        self.assertEqual(s_list.head.next.value, 205)
        self.assertEqual(s_list.tail.prev.value, 88)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.tail.next, None)
        s_list.len()
        self.assertEqual(s_list.len(), 4)
Exemplo n.º 9
0
    def test_add_in_tail(self):
        s_list = LinkedList2()

        #add in empty list
        s_list.add_in_tail(Node(4))
        self.assertEqual(s_list.find(4).value, 4)
        self.assertEqual(s_list.head.value, 4)
        self.assertEqual(s_list.tail.value, 4)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next, None)
        self.assertEqual(s_list.tail.prev, None)
        self.assertEqual(s_list.tail.next, None)
        self.assertEqual(s_list.len(), 1)

        #add in non empty list
        s_list.add_in_tail(Node(8))
        self.assertEqual(s_list.find(8).value, 8)
        self.assertEqual(s_list.head.value, 4)
        self.assertEqual(s_list.tail.value, 8)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next.value, 8)
        self.assertEqual(s_list.tail.prev.value, 4)
        self.assertEqual(s_list.tail.next, None)
        self.assertEqual(s_list.len(), 2)

        #add in non empty list
        s_list.add_in_tail(Node(11))
        self.assertEqual(s_list.find(11).value, 11)
        self.assertEqual(s_list.head.value, 4)
        self.assertEqual(s_list.tail.value, 11)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next.value, 8)
        self.assertEqual(s_list.tail.prev.value, 8)
        self.assertEqual(s_list.tail.next, None)

        self.assertEqual(s_list.find(8).prev.value, 4)
        self.assertEqual(s_list.find(8).next.value, 11)
        self.assertEqual(s_list.len(), 3)

        #check len after add Node(0) in empty list
        s_list = LinkedList2()
        s_list.add_in_tail(Node(0))
        s_list.len()
        self.assertEqual(s_list.len(), 1)
        self.assertNotEqual(s_list.len(), 0)
        self.assertEqual(s_list.find(0).value, 0)
Exemplo n.º 10
0
    def test_delete_from_1el(self):
        list4 = LinkedList2()
        n1 = Node(55)
        list4.add_in_tail(n1)

        list4.delete(55)
        self.assertEqual(list4.get_all(), [])
        self.assertEqual(list4.get_head(), None)
        self.assertEqual(list4.get_tail(), None)
Exemplo n.º 11
0
    def test_insert_equal_number(self):
        s_list = LinkedList2()
        s_list.add_in_tail(Node(1))
        s_list.add_in_tail(Node(2))
        s_list.add_in_tail(Node(4))
        s_list.add_in_tail(Node(5))

        s_list.insert(Node(1), Node(1))
        self.assertNotEqual(s_list.head, s_list.head.next)

        s_list.insert(Node(5), Node(5))
        self.assertNotEqual(s_list.tail, s_list.tail.prev)
Exemplo n.º 12
0
    def _test_insert_in_head_not_success(self):
        list3 = LinkedList2()
        n1 = Node(55)
        n2 = Node(12)
        n3 = Node(55)
        n4 = Node(10)
        n5 = Node(20)
        list3.add_in_tail(n1)
        list3.add_in_tail(n2)
        list3.add_in_tail(n3)
        list3.add_in_tail(n4)

        list3.insert(None, n5)
        self.assertEqual(list3.get_all(),
                         [n5.value, n1.value, n2.value, n3.value, n4.value])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head(), n5)
        self.assertEqual(list3.get_tail(), n4)
        self.assertEqual(n5.next, n1)
        self.assertEqual(n1.prev, n5)
Exemplo n.º 13
0
    def test_insert_with_None(self):
        s_list = LinkedList2()
        s_list.add_in_tail(Node(1))
        s_list.add_in_tail(Node(2))
        s_list.add_in_tail(Node(4))
        s_list.add_in_tail(Node(5))

        #with non empty list
        s_list.insert(None, Node(99))
        self.assertEqual(s_list.find(99).value, 99)
        self.assertEqual(s_list.find(99).next, None)
        self.assertEqual(s_list.find(99).prev.value, 5)
        self.assertEqual(s_list.head.value, 1)
        self.assertEqual(s_list.tail.value, 99)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next.value, 2)
        self.assertEqual(s_list.tail.prev.value, 5)
        self.assertEqual(s_list.tail.next, None)
        s_list.len()
        self.assertEqual(s_list.len(), 5)

        #with empty list
        s_list = LinkedList2()
        s_list.insert(None, Node(205))
        self.assertEqual(s_list.find(205).value, 205)
        self.assertEqual(s_list.head.value, 205)
        self.assertEqual(s_list.tail.value, 205)
        self.assertEqual(s_list.head.prev, None)
        self.assertEqual(s_list.head.next, None)
        s_list.len()
        self.assertEqual(s_list.len(), 1)
Exemplo n.º 14
0
    def test_add_in_head_in_1el(self):
        list3 = LinkedList2()
        n1 = Node(55)
        n4 = Node(10)
        list3.add_in_tail(n1)

        list3.add_in_head(None)
        self.assertEqual(list3.get_all(), [55])
        self.assertEqual(list3.get_head(), n1)
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head().next, None)
        self.assertEqual(list3.get_tail().prev, None)

        list3.add_in_head(n4)
        self.assertEqual(list3.get_all(), [10, 55])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head(), n4)
        self.assertEqual(list3.get_tail(), n1)
        self.assertEqual(n4.next, n1)
        self.assertEqual(n1.prev, n4)
Exemplo n.º 15
0
    def test_add_in_tail(self):
        list3 = LinkedList2()
        n1 = Node(55)
        n2 = Node(12)
        n3 = Node(55)
        list3.add_in_tail(n1)

        list3.add_in_tail(n2)
        self.assertEqual(list3.get_all(), [n1.value, n2.value])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head(), n1)
        self.assertEqual(list3.get_tail(), n2)
        self.assertEqual(n1.next, n2)
        self.assertEqual(n2.prev, n1)

        list3.add_in_tail(n3)
        self.assertEqual(list3.get_all(), [55, 12, 55])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head(), n1)
        self.assertEqual(list3.get_tail(), n3)
        self.assertEqual(n1.next, n2)
        self.assertEqual(n2.prev, n1)
        self.assertEqual(n3.prev, n2)
        self.assertEqual(n2.next, n3)

        list3.add_in_tail(None)
        self.assertEqual(list3.get_all(), [55, 12, 55])
        self.assertEqual(list3.find(55), n1)
        self.assertEqual(list3.find_all(55), [n1, n3])
        self.assertEqual(list3.get_head(), n1)
        self.assertEqual(list3.get_tail(), n3)
        self.assertEqual(n1.prev, None)
        self.assertEqual(n3.next, None)
        self.assertEqual(n1.next, n2)
        self.assertEqual(n3.prev, n2)
        self.assertEqual(n2.next, n3)
Exemplo n.º 16
0
    def test_insert_to_body(self):
        list3 = LinkedList2()
        n1 = Node(55)
        n2 = Node(12)
        n3 = Node(55)
        n4 = Node(10)
        list3.add_in_tail(n1)
        list3.add_in_tail(n2)
        list3.add_in_tail(n3)

        list3.insert(n2, n4)
        self.assertEqual(list3.get_all(),
                         [n1.value, n2.value, n4.value, n3.value])
        self.assertEqual(list3.get_head(), n1)
        self.assertEqual(
            list3.get_tail(),
            list3.find_all(n3.value)[len(list3.find_all(n3.value)) - 1])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(n2.next, n4)
        self.assertEqual(n3.prev, n4)
        self.assertEqual(n4.next, n3)
        self.assertEqual(n4.prev, n2)
Exemplo n.º 17
0
    def test_add_in_head_in_clear(self):
        list3 = LinkedList2()
        n1 = Node(55)

        list3.add_in_head(None)
        self.assertEqual(list3.get_all(), [])
        self.assertEqual(list3.get_head(), None)
        self.assertEqual(list3.get_tail(), None)

        list3.add_in_head(n1)
        self.assertEqual(list3.get_all(), [55])
        self.assertEqual(list3.get_head(), n1)
        self.assertEqual(list3.get_tail(), n1)
        self.assertEqual(n1.prev, None)
        self.assertEqual(n1.next, None)
Exemplo n.º 18
0
    def test_all_methods(self):
        s_list = LinkedList2()
        s_list.add_in_tail(Node(11))
        s_list.insert(Node(11), Node(22))

        #check head and tail after inserting
        self.assertEqual(s_list.head.value, 11)
        self.assertEqual(s_list.tail.value, 22)
        self.assertEqual(s_list.head.next.value, 22)
        self.assertEqual(s_list.tail.prev.value, 11)
        self.assertEqual(s_list.len(), 2)

        #add another element in tail
        s_list.add_in_tail(Node(48))
        self.assertEqual(s_list.head.next.value, 22)
        self.assertEqual(s_list.tail.value, 48)
        self.assertEqual(s_list.tail.prev.value, 22)
        self.assertEqual(s_list.len(), 3)

        #add another element in head with add_in_head
        s_list.add_in_head(Node(55))
        self.assertEqual(s_list.head.value, 55)
        self.assertEqual(s_list.head.next.value, 11)
        self.assertEqual(s_list.find(11).prev.value, 55)
        self.assertEqual(s_list.head.next.prev.value, 55)
        s_list.len()
        self.assertEqual(s_list.len(), 4)

        #add another element in head with add_in_head
        s_list.add_in_head(Node(99))
        self.assertEqual(s_list.head.value, 99)
        self.assertEqual(s_list.head.next.value, 55)
        self.assertEqual(s_list.find(55).prev.value, 99)
        self.assertEqual(s_list.head.next.prev.value, 99)
        self.assertEqual(s_list.len(), 5)

        #insert another element in tail (with afterNode = None)
        s_list.insert(None, Node(115))
        self.assertEqual(s_list.head.value, 99)
        self.assertEqual(s_list.tail.value, 115)
        self.assertEqual(s_list.tail.prev.value, 48)
        s_list.len()
        self.assertEqual(s_list.len(), 6)
Exemplo n.º 19
0
    def test_insert_to_empty(self):
        list3 = LinkedList2()
        n7 = Node(11)

        list3.insert(None, None)
        self.assertEqual(list3.get_all(), [])
        self.assertEqual(list3.get_head(), None)
        self.assertEqual(list3.get_tail(), None)

        list3.insert(None, n7)
        self.assertEqual(list3.get_all(), [n7.value])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head(), n7)
        self.assertEqual(list3.get_tail(), n7)

        list3.insert(None, None)
        self.assertEqual(list3.get_all(), [n7.value])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head(), n7)
        self.assertEqual(list3.get_tail(), n7)
Exemplo n.º 20
0
    def test_insert_in_tail(self):
        list3 = LinkedList2()
        n1 = Node(20)
        n2 = Node(55)
        n3 = Node(12)
        n4 = Node(10)
        n5 = Node(55)
        n6 = Node(22)
        list3.add_in_tail(n1)
        list3.add_in_tail(n2)

        #list3.insert(list3.get_tail(), n3)
        list3.insert(None, n3)
        self.assertEqual(list3.get_all(), [n1.value, n2.value, n3.value])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head(), n1)
        self.assertEqual(list3.get_tail(), n3)
        self.assertEqual(n3.prev, n2)
        self.assertEqual(n2.next, n3)

        list3.add_in_tail(n4)
        list3.add_in_tail(n5)
        self.assertEqual(list3.get_all(), [20, 55, 12, 10, 55])

        #list3.insert(list3.get_tail(), n6)
        list3.insert(None, n6)
        self.assertEqual(list3.get_all(), [20, 55, 12, 10, 55, 22])
        self.assertEqual(list3.get_head().prev, None)
        self.assertEqual(list3.get_tail().next, None)
        self.assertEqual(list3.get_head(), n1)
        self.assertEqual(list3.get_tail(), n6)
        self.assertEqual(n6.prev, n5)
        self.assertEqual(n5.next, n6)
        self.assertEqual(n2.prev, n1)
        self.assertEqual(n1.next, n2)
        self.assertEqual(n3.prev, n2)
        self.assertEqual(n2.next, n3)
        self.assertEqual(n4.prev, n3)
        self.assertEqual(n3.next, n4)
        self.assertEqual(n5.prev, n4)
        self.assertEqual(n4.next, n5)

        list3.insert(list3.get_tail(), None)
        self.assertEqual(list3.get_all(), [20, 55, 12, 10, 55, 22])
Exemplo n.º 21
0
    def test_find_all_in_1el(self):
        list2 = LinkedList2()
        n1 = Node(55)
        list2.add_in_tail(n1)

        self.assertEqual(list2.find_all(n1.value), [n1])
Exemplo n.º 22
0
    def test_delete_all_nodes(self):
        s_list = LinkedList2()
        s_list.add_in_tail(Node(5))
        s_list.add_in_tail(Node(5))
        s_list.add_in_tail(Node(5))
        s_list.add_in_tail(Node(5))

        #all nodes in list are equal
        s_list.delete(5, all=True)
        self.assertEqual(s_list.head, None)
        self.assertEqual(s_list.tail, None)
        self.assertEqual(s_list.len(), 0)

        #one node in list non equal (in head)
        s_list = LinkedList2()
        s_list.add_in_tail(Node(1))
        s_list.add_in_tail(Node(5))
        s_list.add_in_tail(Node(5))
        s_list.add_in_tail(Node(5))

        s_list.delete(5, all=True)
        self.assertEqual(s_list.head.value, 1)
        self.assertEqual(s_list.tail.value, 1)
        self.assertEqual(s_list.len(), 1)

        #one node in list non equal (in tail)
        s_list = LinkedList2()
        s_list.add_in_tail(Node(5))
        s_list.add_in_tail(Node(5))
        s_list.add_in_tail(Node(5))
        s_list.add_in_tail(Node(1))

        s_list.delete(5, all=True)
        self.assertEqual(s_list.head.value, 1)
        self.assertEqual(s_list.tail.value, 1)
        s_list.len()
        self.assertEqual(s_list.len(), 1)