예제 #1
0
    def test_delete_in_tail(self):
        list1 = LinkedList().create_list([12, 10, 14, 12, 55, 10, 5])

        list1.delete(5)
        self.assertEqual(list1.get_all(), [12, 10, 14, 12, 55, 10])
        self.assertEqual(list1.get_head(), list1.find_all(12)[0])
        self.assertEqual(list1.get_tail(), list1.find_all(10)[1])
예제 #2
0
    def test_delete_multi_from_1el(self):
        list1 = LinkedList().create_list([5])

        list1.delete(5, True)
        self.assertEqual(list1.get_all(), [])
        self.assertEqual(list1.len(), 0)
        self.assertEqual(list1.get_head(), None)
        self.assertEqual(list1.get_tail(), None)
예제 #3
0
    def test_delete_multi_in_tail(self):
        list1 = LinkedList().create_list([12, 43,  14, 12, 5, 5])

        list1.delete(5, True)
        self.assertEqual(list1.get_all(), [12, 43,  14, 12])
        self.assertEqual(list1.len(), 4)
        self.assertEqual(list1.get_head().value, 12)
        self.assertEqual(list1.get_tail().value, 12)
예제 #4
0
    def test_delete_multi_in_head_and_body(self):
        list1 = LinkedList().create_list([12, 43,  14, 12, 5, 5])

        list1.delete(12, True)
        self.assertEqual(list1.get_all(), [43,  14, 5, 5])
        self.assertEqual(list1.len(), 4)
        self.assertEqual(list1.get_head().value, 43)
        self.assertEqual(list1.get_tail().value, 5)
예제 #5
0
    def test_delete_in_head(self):
        list1 = LinkedList().create_list([55, 12, 43, 10, 14, 12, 55, 10, 5])

        list1.delete(55)
        self.assertEqual(list1.get_all(), [12, 43, 10, 14, 12, 55, 10, 5])
        self.assertEqual(list1.len(), 8)
        self.assertEqual(list1.get_head(), list1.find(12))
        self.assertEqual(list1.get_tail(), list1.find(5))
예제 #6
0
    def test_delet_from_list_with_one_node(self):
        s_list_example = LinkedList()
        s_list_example.add_in_tail(Node(2))

        s_list_example.delete(2, all=True)

        self.assertEqual(s_list_example.len(), 0)
        self.assertEqual(s_list_example.head, None)
        self.assertEqual(s_list_example.tail, None)
예제 #7
0
    def test_delete_from_list_with_all_equal_nodes(self):
        s_list_example = LinkedList()
        for i in range(20):
            s_list_example.add_in_tail(Node(2))

        s_list_example.delete(2, all=True)
        self.assertEqual(s_list_example.len(), 0)
        self.assertEqual(s_list_example.head, None)
        self.assertEqual(s_list_example.tail, None)
예제 #8
0
    def test_delete_from_1el(self):
        list4 = LinkedList()
        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)
예제 #9
0
    def test_delete_from_short_list(self):
        s_list_example = LinkedList()
        s_list_example.add_in_tail(Node(5))
        s_list_example.add_in_tail(Node(1))
        s_list_example.add_in_tail(Node(6))
        s_list_example.add_in_tail(Node(8))
        s_list_example.add_in_tail(Node(11))
        s_list_example.add_in_tail(Node(77))

        s_list_example.delete(5)
        self.assertEqual(s_list_example.head.value, 1)
예제 #10
0
    def test_delete_multi_wrong(self):
        list1 = LinkedList().create_list([12, 10, 14, 12, 55, 10])

        list1.delete(77, True)
        self.assertEqual(list1.get_all(), [12, 10, 14, 12, 55, 10])
        self.assertEqual(list1.get_head(), list1.find_all(12)[0])
        self.assertEqual(list1.get_tail(), list1.find_all(10)[1])

        list1.delete(None, True)
        self.assertEqual(list1.get_all(), [12, 10, 14, 12, 55, 10])
        self.assertEqual(list1.len(), 6)
        self.assertEqual(list1.get_head(), list1.find_all(12)[0])
        self.assertEqual(list1.get_tail(), list1.find_all(10)[1])
예제 #11
0
    def test_delete_multi_from_empty(self):
        list1 = LinkedList()

        list1.delete(5, True)
        self.assertEqual(list1.get_all(), [])
        self.assertEqual(list1.len(), 0)
        self.assertEqual(list1.get_head(), None)
        self.assertEqual(list1.get_tail(), None)

        list1.delete(None, True)
        self.assertEqual(list1.get_all(), [])
        self.assertEqual(list1.len(), 0)
        self.assertEqual(list1.get_head(), None)
        self.assertEqual(list1.get_tail(), None)
class TestStringMethods(unittest.TestCase):

    def setUp(self):
        # Set up Nodes
        e1 = Node(1)
        e2 = Node(2)
        e3 = Node(3)

        # Start setting up a LinkedList
        self.ll = LinkedList(e1)
        self.ll.append(e2)
        self.ll.append(e3)

    def test_get_linkedlist_value(self):
        """
        Test linkedlist value between 1 and 3, should return value from 1 to 3
        """
        self.assertEqual(self.ll.head.value, 1)
        self.assertEqual(self.ll.head.next.value, 2)
        self.assertEqual(self.ll.head.next.next.value, 3)

    def test_node_not_in_list(self):
        self.assertEqual(self.ll.head.next.next.next, None)

    def test_get_position_value(self):
        """
        get_position will return the element at a certain position.
        """
        self.assertEqual(self.ll.get_position(1).value, 1)
        self.assertEqual(self.ll.get_position(2).value, 2)
        self.assertEqual(self.ll.get_position(3).value, 3)

    def test_insert_position(self):
        """
        insert function will add an element to a particular spot in the list.
        Assume the first position is "1".
        Inserting at position 3 means between
        the 2nd and 3rd elements.
        """
        e4 = Node(4)
        self.ll.insert(e4, 3)
        self.assertEqual(self.ll.get_position(3).value, 4)

    def test_delete_value(self):
        """
        delete will delete the first element with that particular value.
        """
        self.ll.delete(1)
        self.assertEqual(self.ll.get_position(1).value, 2)
        self.assertEqual(self.ll.get_position(2).value, 3)
예제 #13
0
    def test_delete(self):
        print('Test: delete on an empty list')
        linked_list = LinkedList(None)
        linked_list.delete('a')
        assert_equal(linked_list.get_all_data(), [])

        print('Test: delete a None')
        head = Node(10)
        linked_list = LinkedList(head)
        linked_list.delete(None)
        assert_equal(linked_list.get_all_data(), [10])

        print('Test: delete general case with matches')
        head = Node(10)
        linked_list = LinkedList(head)
        linked_list.insert_to_front('a')
        linked_list.insert_to_front('bc')
        linked_list.delete('a')
        assert_equal(linked_list.get_all_data(), ['bc', 10])

        print('Test: delete general case with no matches')
        linked_list.delete('aa')
        assert_equal(linked_list.get_all_data(), ['bc', 10])

        print('Success: test_delete\n')