123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197 |
- #define IMPORT_CORE
- #include "../Tests.h"
- #include "core/List.h"
- #include "core/ToString.h"
- #include "core/Vector.h"
- static void testAdd() {
- 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() {
- 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() {
- 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() {
- 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() {
- 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;
- List list;
- initList(&list, sizeof(size_t));
- for(size_t i = 0; i < limit; i++) {
- addListType(&list, size_t, i);
- }
- for(size_t i = 0; i < list.length; i++) {
- TEST_SIZE(i, getTypedListIndex(&list, i, size_t));
- }
- TEST_SIZE(limit, list.length);
- destroyList(&list);
- }
- static void testToString1() {
- 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 = toString(&list, buffer, sizeof(buffer), toStringSize);
- TEST_SIZE(13, n);
- TEST_STRING("[1, 243, 423]", buffer);
- destroyList(&list);
- }
- static void testToString2() {
- List list;
- initList(&list, sizeof(size_t));
- addListType(&list, size_t, 1);
- char buffer[128];
- size_t n = toString(&list, buffer, sizeof(buffer), toStringSize);
- TEST_SIZE(3, n);
- TEST_STRING("[1]", buffer);
- destroyList(&list);
- }
- static void testToString3() {
- List list;
- initList(&list, sizeof(size_t));
- char buffer[128];
- size_t n = toString(&list, buffer, sizeof(buffer), toStringSize);
- TEST_SIZE(2, n);
- TEST_STRING("[]", buffer);
- destroyList(&list);
- }
- static void testRemoveBySwap() {
- 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() {
- 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() {
- 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() {
- List list;
- initList(&list, sizeof(size_t));
- reserveListEntries(&list, 0);
- destroyList(&list);
- }
- static void testStruct() {
- 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) {
- testAdd();
- testMultipleAdd();
- testAddLast();
- testAddReplace();
- testClear();
- testBigAdd(light);
- testToString1();
- testToString2();
- testToString3();
- testRemoveBySwap();
- testRemove();
- testRemoveLast();
- testInvalidReserve();
- testStruct();
- }
|