diff options
| -rw-r--r-- | CST 126/Homework3/SinglyLinkedList.hpp | 1 | ||||
| -rw-r--r-- | CST 126/Homework3/main.cpp | 1 | ||||
| -rw-r--r-- | CST 126/UnitTester/UnitTester.cpp | 109 |
3 files changed, 109 insertions, 2 deletions
diff --git a/CST 126/Homework3/SinglyLinkedList.hpp b/CST 126/Homework3/SinglyLinkedList.hpp index 92f4a1f..f6bbf03 100644 --- a/CST 126/Homework3/SinglyLinkedList.hpp +++ b/CST 126/Homework3/SinglyLinkedList.hpp @@ -65,6 +65,7 @@ inline bool RemoveFirst(SinglyLinkedList<T>* list) if (list->_size == 1) { list->_head =nullptr; + list->_size--; } else { diff --git a/CST 126/Homework3/main.cpp b/CST 126/Homework3/main.cpp index fb631b8..07c4dbc 100644 --- a/CST 126/Homework3/main.cpp +++ b/CST 126/Homework3/main.cpp @@ -7,6 +7,5 @@ int main(const int argc, char* argv[]) { - return 0; }
\ No newline at end of file diff --git a/CST 126/UnitTester/UnitTester.cpp b/CST 126/UnitTester/UnitTester.cpp index 83b51d9..ed4c80f 100644 --- a/CST 126/UnitTester/UnitTester.cpp +++ b/CST 126/UnitTester/UnitTester.cpp @@ -123,6 +123,19 @@ namespace LinkedListUnitTests TraverseNode = TraverseNode->_next; } } + TEST_METHOD(Insert_After_Empty_List) + { + + struct SinglyLinkedList<int> NewList {}; + ListNode<int> Node1 = { 1,nullptr }; + + InsertAfter(&NewList, NULL, &Node1); + + + + Assert::AreEqual(1, NewList._head->_data); + } + TEST_METHOD(Insert_Before_UNO_List) { @@ -167,7 +180,7 @@ namespace LinkedListUnitTests delete node; } - TEST_METHOD(Prepend_LinkedList_With_1) + TEST_METHOD(Prepend_LinkedList_With_0) { struct SinglyLinkedList<int> NewList {}; ListNode<int> Node1 = { 1,nullptr }; @@ -198,6 +211,100 @@ namespace LinkedListUnitTests Assert::AreEqual(5ull, NewList._size); } + TEST_METHOD(RemoveFirst_LinkedList_Uno) + { + struct SinglyLinkedList<int> NewList {}; + ListNode<int> Node1 = { 1,nullptr }; + + bool Success = Append(&NewList, &Node1); + + RemoveFirst(&NewList); + + Assert::IsNull(NewList._head); + Assert::AreEqual(0ull, NewList._size); + } + + TEST_METHOD(RemoveFirst_LinkedList_Empty) + { + struct SinglyLinkedList<int> NewList {}; + ListNode<int> Node1 = { 1,nullptr }; + + Assert::IsTrue(RemoveFirst(&NewList)); + Assert::IsNull(NewList._head); + } + + TEST_METHOD(RemoveFirst_LinkedList_5items) + { + struct SinglyLinkedList<int> NewList {}; + ListNode<int> Node1 = { 1,nullptr }; + ListNode<int>Node2 = { 2,nullptr }; + ListNode<int>Node3 = { 3,nullptr }; + ListNode<int>Node4 = { 4,nullptr }; + ListNode<int>Node5 = { 5,nullptr }; + + + bool Success = Append(&NewList, &Node1); + Success = Append(&NewList, &Node2); + Success = Append(&NewList, &Node3); + Success = Append(&NewList, &Node4); + Success = Append(&NewList, &Node5); + + Assert::IsTrue(RemoveFirst(&NewList)); + Assert::AreEqual(NewList._head->_data, Node2._data); + } + + + TEST_METHOD(RemoveLast_LinkedList_Uno) + { + struct SinglyLinkedList<int> NewList {}; + ListNode<int> Node1 = { 1,nullptr }; + + bool Success = Append(&NewList, &Node1); + + RemoveLast(&NewList); + + Assert::IsNull(NewList._head); + Assert::AreEqual(0ull, NewList._size); + } + + TEST_METHOD(RemoveLast_LinkedList_Empty) + { + struct SinglyLinkedList<int> NewList {}; + ListNode<int> Node1 = { 1,nullptr }; + + Assert::IsTrue(RemoveLast(&NewList)); + Assert::IsNull(NewList._head); + } + + TEST_METHOD(RemoveLast_LinkedList_5items) + { + struct SinglyLinkedList<int> NewList {}; + ListNode<int> Node1 = { 1,nullptr }; + ListNode<int>Node2 = { 2,nullptr }; + ListNode<int>Node3 = { 3,nullptr }; + ListNode<int>Node4 = { 4,nullptr }; + ListNode<int>Node5 = { 5,nullptr }; + + + bool Success = Append(&NewList, &Node1); + Success = Append(&NewList, &Node2); + Success = Append(&NewList, &Node3); + Success = Append(&NewList, &Node4); + Success = Append(&NewList, &Node5); + + Assert::IsTrue(RemoveFirst(&NewList)); + + ListNode<int>* Traverse = NewList._head; + for (auto i = 1; i < 3; i++) + { + Traverse = Traverse->_next; + } + Assert::AreEqual(4ull, NewList._size); + Assert::AreEqual(Node4._data, Traverse->_data); + } + + + TEST_METHOD(ExtractFirst_LinkedList_Success) { struct SinglyLinkedList<int> NewList {}; |