def test_pop_removes_last_item(self): l1 = LinkedList([1, 2, 3]) elem = l1.pop(2) self.assertEqual(elem, 3) self.assertEqual(l1.count(), 2) self.assertEqual(l1, LinkedList([1, 2]))
def test_pop_removes_item_in_the_middle_of_the_list(self): l1 = LinkedList([1, 2, 3, 4, 5]) elem = l1.pop(2) self.assertEqual(elem, 3) self.assertEqual(l1.count(), 4) self.assertEqual(l1, LinkedList([1, 2, 4, 5])) elem = l1.pop(1) self.assertEqual(elem, 2) self.assertEqual(l1.count(), 3) self.assertEqual(l1, LinkedList([1, 4, 5]))
def test_add_equals_list(self): my_list = LinkedList() my_list += LinkedList([1, 2]) self.assertEqual(my_list, LinkedList([1, 2])) my_list = LinkedList([1, 2]) my_list += LinkedList([3, 4]) self.assertEqual(my_list, LinkedList([1, 2, 3, 4])) my_list = LinkedList([1, 2]) my_list += LinkedList() self.assertEqual(my_list, LinkedList([1, 2])) my_list = LinkedList() my_list += LinkedList() self.assertEqual(my_list.count(), 0) self.assertEqual(my_list, LinkedList())
def test_add_list(self): my_list = LinkedList() new_list = my_list + LinkedList([1]) self.assertEqual(new_list, LinkedList([1])) self.assertEqual(my_list, LinkedList()) my_list = LinkedList([1, 2]) new_list = my_list + LinkedList([3, 4]) self.assertEqual(new_list, LinkedList([1, 2, 3, 4])) self.assertEqual(my_list, LinkedList([1, 2])) my_list = LinkedList([1, 2]) new_list = my_list + LinkedList() self.assertEqual(new_list, LinkedList([1, 2])) self.assertEqual(my_list, LinkedList([1, 2])) my_list = LinkedList() new_list = my_list + LinkedList() self.assertEqual(new_list, LinkedList()) self.assertEqual(new_list.count(), 0) self.assertEqual(my_list, LinkedList()) self.assertEqual(my_list.count(), 0)
def test_append(self): my_list = LinkedList() my_list.append(1) self.assertEqual(my_list.start.elem, 1) self.assertEqual(my_list.start.next, None) self.assertEqual(my_list, LinkedList([1])) my_list.append(2) self.assertEqual(my_list.start.elem, 1) self.assertEqual(my_list.start.next, Node(2)) self.assertEqual(my_list.start.next.elem, 2) self.assertEqual(my_list.start.next.next, None) self.assertEqual(my_list.count(), 2)
def test_pop_with_a_single_element_list(self): # Default index l1 = LinkedList([9]) elem = l1.pop() self.assertEqual(elem, 9) self.assertEqual(l1.count(), 0) self.assertEqual(l1, LinkedList([])) # index == 0 l1 = LinkedList([9]) elem = l1.pop(0) self.assertEqual(elem, 9) self.assertEqual(l1.count(), 0) self.assertEqual(l1, LinkedList([]))