| 
					
				 | 
			
			
				@@ -1,272 +1,181 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "../Tests.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "core/List.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "core/ToString.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#include "core/Utility.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "core/Vector.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testAdd() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(5, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(5, coreListGetC(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(5, getTypedListIndex(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testMultipleAdd() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(4, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGet(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, coreListGet(&list, 2, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, coreListLast(&list, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(4, coreListGetC(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGetC(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, coreListGetC(&list, 2, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, coreListLastC(&list, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(4, getTypedListIndex(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, getTypedListIndex(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(2, getTypedListIndex(&list, 2, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(2, getTypedListLast(&list, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testAddLast() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAddLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(4, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGet(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGet(&list, 2, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addLastListData(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(4, getTypedListIndex(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, getTypedListIndex(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, getTypedListIndex(&list, 2, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testAddReplace() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListGet(&list, 0, size_t) = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getTypedListIndex(&list, 0, size_t) = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, getTypedListIndex(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testClear() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreClearList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static void testShrink() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_TRUE(list.capacity >= 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreShrinkList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, list.capacity); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(5, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(4, coreListGet(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGet(&list, 2, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    clearList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testBigAdd(bool light) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     size_t limit = light ? 10000 : 100000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for(size_t i = 0; i < limit; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        coreListAdd(&list, size_t, i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        addListType(&list, size_t, i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for(size_t i = 0; i < list.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CORE_TEST_SIZE(i, coreListGet(&list, i, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TEST_SIZE(i, getTypedListIndex(&list, i, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(limit, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static void testCopy() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList copy = CORE_LIST(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreCopyList(©, &list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreCopyList(©, ©); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(list.length, copy.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    size_t limit = coreMinSize(copy.length, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    for(size_t i = 0; i < limit; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CORE_TEST_SIZE(coreListGet(&list, i, size_t), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                       coreListGet(©, i, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(©); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static void testMove() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList move = CORE_LIST(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreMoveList(&move, &list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreMoveList(&move, &move); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, move.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(1, coreListGet(&move, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, coreListGet(&move, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGet(&move, 2, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&move); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(limit, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testToString1() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 243); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 423); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 243); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 423); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     char buffer[128]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    size_t n = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        coreToStringList(&list, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(13, n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_STRING("[1, 243, 423]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t n = toString(&list, buffer, sizeof(buffer), toStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(13, n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_STRING("[1, 243, 423]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testToString2() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     char buffer[128]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    size_t n = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        coreToStringList(&list, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_STRING("[1]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t n = toString(&list, buffer, sizeof(buffer), toStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_STRING("[1]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testToString3() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     char buffer[128]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    size_t n = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        coreToStringList(&list, buffer, sizeof(buffer), coreToStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_STRING("[]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    size_t n = toString(&list, buffer, sizeof(buffer), toStringSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(2, n); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_STRING("[]", buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testRemoveBySwap() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListRemoveBySwap(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGet(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListRemoveBySwap(&list, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListRemoveBySwap(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeListIndexBySwap(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(2, getTypedListIndex(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, getTypedListIndex(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(2, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeListIndexBySwap(&list, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(2, getTypedListIndex(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeListIndexBySwap(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testRemove() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListRemove(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, coreListGet(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListRemove(&list, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListRemove(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeListIndex(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, getTypedListIndex(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(2, getTypedListIndex(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(2, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeListIndex(&list, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, getTypedListIndex(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeListIndex(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testRemoveLast() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListRemoveLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(4, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(3, coreListGet(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(2, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListRemoveLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(4, coreListGet(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListRemoveLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static void testResize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreResizeListV(&list, 5, size_t, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(5, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    for(size_t i = 0; i < 5; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CORE_TEST_SIZE(10, coreListGet(&list, i, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static void testDefaultResize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreResizeList(&list, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(5, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    for(size_t i = 0; i < 5; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CORE_TEST_SIZE(0, coreListGet(&list, i, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, size_t, 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeListLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(4, getTypedListIndex(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(3, getTypedListIndex(&list, 1, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(2, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeListLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(4, getTypedListIndex(&list, 0, size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(1, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removeListLast(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_SIZE(0, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testInvalidReserve() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListReserve(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static void testShrinkExact() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreResizeList(&list, 50); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreShrinkList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static void testShrinkResize() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreResizeList(&list, 50); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(50, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreResizeListV(&list, 20, size_t, 5); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(20, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreResizeList(&list, 10); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_SIZE(10, list.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static void testCopyEmpty() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList copy = CORE_LIST(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreCopyList(©, &list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(©); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(size_t)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    reserveListEntries(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void testStruct() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreList list = CORE_LIST(sizeof(CoreVector3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CoreVector3 v = {{1, 2, 3}}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAddPointer(&list, &v); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreListAdd(&list, CoreVector3, {2, 3, 4}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    CORE_TEST_V3(&v, coreListGetPointer(&list, 0, CoreVector3)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    coreDestroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    List list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Vector3 v = {{1, 2, 3}}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initList(&list, sizeof(v)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListData(&list, &v); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addListType(&list, Vector3, {2, 3, 4}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Vector3* entry = getListIndex(&list, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TEST_V3(&v, entry); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    destroyList(&list); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void testList(bool light) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -275,21 +184,13 @@ void testList(bool light) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testAddLast(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testAddReplace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testClear(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    testShrink(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testBigAdd(light); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    testCopy(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    testMove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testToString1(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testToString2(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testToString3(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testRemoveBySwap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testRemove(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testRemoveLast(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    testResize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    testDefaultResize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testInvalidReserve(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    testShrinkExact(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    testShrinkResize(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    testCopyEmpty(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     testStruct(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |