def test_delete_head_with_one_element_list(self): singlyLinkedListObject = SinglyLinkedList() singlyLinkedListObject.populate([1]) singlyLinkedListObject.deleteHead() outputList = singlyLinkedListObject.returnLinkedListAsList() self.assertTrue(len(outputList) == 0, "After deleting the only element in the list, Output List must be empty")
def test_length_of_list_after_list_change_operations(self): singlyLinkedListObject = SinglyLinkedList() inputList = range(10) singlyLinkedListObject.populate(inputList) expectedLength = len(inputList) actualLength = len(singlyLinkedListObject) self.assertTrue(expectedLength == actualLength, "Expected length: %s, Actual Length: %s" %(expectedLength, actualLength)) singlyLinkedListObject.deleteHead() expectedLength -= 1 actualLength = len(singlyLinkedListObject) self.assertTrue(expectedLength == actualLength, "Expected length: %s, Actual Length: %s" %(expectedLength, actualLength)) singlyLinkedListObject.insertAtHead(200) expectedLength += 1 actualLength = len(singlyLinkedListObject) self.assertTrue(expectedLength == actualLength, "Expected length: %s, Actual Length: %s" %(expectedLength, actualLength)) singlyLinkedListObject.insertAtHead(200) expectedLength += 1 actualLength = len(singlyLinkedListObject) self.assertTrue(expectedLength == actualLength, "Expected length: %s, Actual Length: %s" %(expectedLength, actualLength))
def test_delete_head_of_list_with_one_item(self): singlyLinkedListObject = SinglyLinkedList() inputList = [1] singlyLinkedListObject.populate(inputList) singlyLinkedListObject.deleteHead() self.assertTrue(singlyLinkedListObject.isHeadNone(), "Now that the only element in the list is deleted, Head of empty list must be None") singlyLinkedListObject.deleteHead() self.assertTrue(singlyLinkedListObject.isHeadNone(), "Now that the only element in the list is deleted, Head of empty list must be None")
def test_delete_head_from_a_list_with_more_than_two_elements(self): singlyLinkedListObject = SinglyLinkedList() inputList = range(20) singlyLinkedListObject.populate(inputList) # Deleting the first element from the inputList. this will help in assertion inputList.pop(0) singlyLinkedListObject.deleteHead() outputList = singlyLinkedListObject.returnLinkedListAsList() self.assertTrue(inputList == outputList, "Expecting one lesser value in the Output List but got different. Expected: %s, Got: %s" %(inputList, outputList)) self.assertTrue(singlyLinkedListObject.head != singlyLinkedListObject.tail, "Tail and Head must NOT be the same after only 1 element remains in the list")
def test_changing_list_length_during_delete_head_operation(self): singlyLinkedListObject = SinglyLinkedList() inputList = range(10) singlyLinkedListObject.populate(inputList) expectedLength = len(inputList) actualLength = len(singlyLinkedListObject) self.assertTrue(expectedLength == actualLength, "Expected length: %s, Actual Length: %s" %(expectedLength, actualLength)) for data in inputList: singlyLinkedListObject.deleteHead() actualLength = len(singlyLinkedListObject) expectedLength -= 1 # Because a new element has been added to the list. self.assertTrue(expectedLength == actualLength, "Expected length: %s, Actual Length: %s" %(expectedLength, actualLength))
def test_delete_head_of_empty_list_more_than_once(self): singlyLinkedListObject = SinglyLinkedList() singlyLinkedListObject.deleteHead() self.assertTrue(singlyLinkedListObject.isHeadNone(), "Head of empty list must be None") singlyLinkedListObject.deleteHead() self.assertTrue(singlyLinkedListObject.isHeadNone(), "Head of empty list must be None") singlyLinkedListObject.deleteHead() self.assertTrue(singlyLinkedListObject.isHeadNone(), "Head of empty list must be None")
def test_delete_head_of_list_with_more_than_one_item(self): singlyLinkedListObject = SinglyLinkedList() inputList = [1, 2, 3] singlyLinkedListObject.populate(inputList) singlyLinkedListObject.deleteHead() self.assertFalse(singlyLinkedListObject.isHeadNone(), "Head of non-empty list must NOT be None") self.assertFalse(singlyLinkedListObject.head == 2, "Expected hea data: %s, Actual head data: %s" %(2, singlyLinkedListObject.head)) singlyLinkedListObject.deleteHead() self.assertFalse(singlyLinkedListObject.isHeadNone(), "Head of non-empty list must NOT be None") self.assertFalse(singlyLinkedListObject.head == 3, "Expected hea data: %s, Actual head data: %s" %(3, singlyLinkedListObject.head)) singlyLinkedListObject.deleteHead() self.assertTrue(singlyLinkedListObject.isHeadNone(), "Head of Empty list must be None")
def test_delete_head_on_empty_list(self): singlyLinkedListObject = SinglyLinkedList() self.assertTrue(singlyLinkedListObject.deleteHead(), "With no elements in the list, it should return True") outputList = singlyLinkedListObject.returnLinkedListAsList() self.assertTrue(len(outputList) == 0, "Output list from an Empty Linked List must be empty")