|
@@ -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();
|
|
|
}
|