| 
					
				 | 
			
			
				@@ -0,0 +1,256 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "../Tests.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "core/LinkedList.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "core/Utility.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testAdd() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(5, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testMultipleAdd() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(4, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testClear() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreClearLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NULL(list.first); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NULL(list.last); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testBigAdd(bool light) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t limit = light ? 10000 : 100000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for(size_t i = 0; i < limit; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        coreLinkedListAdd(&list, size_t, i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for(size_t i = 0; i < list.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(i, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(limit, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testToString1() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 243); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 423); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    char buffer[128]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t n = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        coreToStringLinkedList(&list, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(13, n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_STRING("[1, 243, 423]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testToString2() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    char buffer[128]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t n = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        coreToStringLinkedList(&list, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_STRING("[1]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testToString3() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    char buffer[128]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t n = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        coreToStringLinkedList(&list, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_STRING("[]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testRemove() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* a = coreLinkedListAdd(&list, size_t, 4u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* b = coreLinkedListAdd(&list, size_t, 3u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* c = coreLinkedListAdd(&list, size_t, 2u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* d = coreLinkedListAdd(&list, size_t, 1u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NOT_NULL(a); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NOT_NULL(b); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NOT_NULL(c); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NOT_NULL(d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemove(&list, b); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(4, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemove(&list, a); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemove(&list, d); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemove(&list, c); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NULL(list.first); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NULL(list.last); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testRemoveFirst() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 4u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 3u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 2u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 1u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemoveFirst(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(3, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(2, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(1, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemoveFirst(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(2, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(1, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemoveFirst(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(1, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemoveFirst(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NULL(list.first); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NULL(list.last); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testRemoveLast() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 4u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 3u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 2u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 1u); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemoveLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(4, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(3, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(2, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(3, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemoveLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(4, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        current = current->next; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(3, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(2, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemoveLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current = list.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(4, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListRemoveLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NULL(list.first); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_NULL(list.last); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void testSwap() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList list = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreLinkedListAdd(&list, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedList swap = CORE_LINKED_LIST; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreSwapLinkedList(&list, &swap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CoreLinkedListNode* current = swap.first; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(CORE_TEST_NOT_NULL(current)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CORE_TEST_SIZE(5, coreLinkedListGet(current, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CORE_TEST_SIZE(1, swap.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&swap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    coreDestroyLinkedList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+void coreTestLinkedList(bool light) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testAdd(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testMultipleAdd(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testClear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testBigAdd(light); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testToString1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testToString2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testToString3(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testRemove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testRemoveFirst(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testRemoveLast(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    testSwap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |