From 4dd513935776a7598024fabf57cd003600c887b2 Mon Sep 17 00:00:00 2001 From: Chanin Timbal Date: Sat, 8 Jun 2024 12:13:18 -0700 Subject: Completed Functions and Unit tests for Prepend, Insert Before, Insert Afterm Remove Last, and Clear --- CST 126/UnitTests/UnitTests.cpp | 93 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) (limited to 'CST 126/UnitTests/UnitTests.cpp') diff --git a/CST 126/UnitTests/UnitTests.cpp b/CST 126/UnitTests/UnitTests.cpp index 4b17624..f4f3683 100644 --- a/CST 126/UnitTests/UnitTests.cpp +++ b/CST 126/UnitTests/UnitTests.cpp @@ -120,5 +120,98 @@ namespace LinkedListUnitTests travel = travel->_next; } } + + TEST_METHOD(InsertAfterLinkedList) + { + //Arrange + SinglyLinkedList linkedList{}; + ListNode* node = new ListNode{ 1, nullptr }; + ListNode* node2 = new ListNode{ 2, nullptr }; + ListNode* node3 = new ListNode{ 3, nullptr }; + ListNode* node4 = new ListNode{ 4, nullptr }; + ListNode* node5 = new ListNode{ 5, nullptr }; + ListNode* node6 = new ListNode{ 6, nullptr }; + + //Act + bool success = Append(&linkedList, node); + success = Append(&linkedList, node2); + success = Append(&linkedList, node3); + success = Append(&linkedList, node4); + success = Append(&linkedList, node6); + success = InsertAfter(&linkedList, node4, node5); + + ListNode* travel = linkedList._head; + + //Assert + + for (auto i = 1; i <= 6; i++) + { + Assert::AreEqual(i, travel->_data); + travel = travel->_next; + } + } + + TEST_METHOD(InsertBeforeLinkedList) + { + //Arrange + SinglyLinkedList linkedList{}; + ListNode* node = new ListNode{ 1, nullptr }; + ListNode* node2 = new ListNode{ 2, nullptr }; + ListNode* node3 = new ListNode{ 3, nullptr }; + ListNode* node4 = new ListNode{ 4, nullptr }; + ListNode* node5 = new ListNode{ 5, nullptr }; + ListNode* node6 = new ListNode{ 6, nullptr }; + + //Act + bool success = Append(&linkedList, node); + success = Append(&linkedList, node2); + success = Append(&linkedList, node3); + success = Append(&linkedList, node4); + success = Append(&linkedList, node6); + success = InsertBefore(&linkedList, node6, node5); + + ListNode* travel = linkedList._head; + + //Assert + + for (auto i = 1; i <= 6; i++) + { + Assert::AreEqual(i, travel->_data); + travel = travel->_next; + } + } + + + TEST_METHOD(ClearLinkedList) + { + //Arrange + SinglyLinkedList linkedList{}; + ListNode* node = new ListNode{ 1, nullptr }; + ListNode* node2 = new ListNode{ 2, nullptr }; + ListNode* node3 = new ListNode{ 3, nullptr }; + ListNode* node4 = new ListNode{ 4, nullptr }; + ListNode* node5 = new ListNode{ 5, nullptr }; + ListNode* node6 = new ListNode{ 6, nullptr }; + + //Act + bool success = Append(&linkedList, node); + success = Append(&linkedList, node2); + success = Append(&linkedList, node3); + success = Append(&linkedList, node4); + success = Append(&linkedList, node6); + success = InsertBefore(&linkedList, node6, node5); + + ListNode* travel = linkedList._head; + + for (auto i = 1; i <= 6; i++) + { + Assert::AreEqual(i, travel->_data); + travel = travel->_next; + } + success = Clear(&linkedList); + + //Assert + Assert::AreEqual(0ull, linkedList._size); + } }; } -- cgit v1.2.3