123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- #include "../Tests.h"
- #include "core/Components.h"
- LIST(int, Int)
- LIST_SOURCE(int, Int)
- COMPONENTS(int, Int)
- COMPONENTS_SOURCE(int, Int)
- static void testAddForEach() {
- ComponentsInt c;
- initComponentsInt(&c);
- int* i1 = getOrAddComponentInt(&c, 1);
- if(TEST_NOT_NULL(i1)) {
- *i1 = 10;
- }
- int* i2 = getOrAddComponentInt(&c, 1);
- if(TEST_NOT_NULL(i2)) {
- *i2 = 15;
- }
- int* i3 = getOrAddComponentInt(&c, 5);
- if(TEST_NOT_NULL(i3)) {
- *i3 = 20;
- }
- int* i4 = getOrAddComponentInt(&c, 10);
- if(TEST_NOT_NULL(i4)) {
- *i4 = 30;
- }
- TEST_TRUE(i1 == i2);
- ComponentIteratorInt iter;
- initComponentIteratorInt(&iter, &c);
- if(TEST_TRUE(hasNextComponentNodeInt(&iter))) {
- ComponentNodeInt* n = nextComponentNodeInt(&iter);
- TEST_SIZE(1, n->entity);
- TEST_INT(15, *n->component);
- }
- if(TEST_TRUE(hasNextComponentNodeInt(&iter))) {
- ComponentNodeInt* n = nextComponentNodeInt(&iter);
- TEST_SIZE(5, n->entity);
- TEST_INT(20, *n->component);
- }
- if(TEST_TRUE(hasNextComponentNodeInt(&iter))) {
- ComponentNodeInt* n = nextComponentNodeInt(&iter);
- TEST_SIZE(10, n->entity);
- TEST_INT(30, *n->component);
- }
- TEST_FALSE(hasNextComponentNodeInt(&iter));
- destroyComponentsInt(&c);
- }
- static void testAddComponentForEach() {
- ComponentsInt c;
- initComponentsInt(&c);
- int* i1 = getOrAddComponentInt(&c, 1);
- if(TEST_NOT_NULL(i1)) {
- *i1 = 10;
- }
- int* i2 = getOrAddComponentInt(&c, 5);
- if(TEST_NOT_NULL(i2)) {
- *i2 = 20;
- }
- int* i3 = getOrAddComponentInt(&c, 10);
- if(TEST_NOT_NULL(i3)) {
- *i3 = 30;
- }
- int* iter = getComponentsStartInt(&c);
- int* end = getComponentsEndInt(&c);
- if(TEST_TRUE(iter != end)) {
- TEST_INT(10, *(iter++));
- }
- if(TEST_TRUE(iter != end)) {
- TEST_INT(20, *(iter++));
- }
- if(TEST_TRUE(iter != end)) {
- TEST_INT(30, *(iter++));
- }
- TEST_TRUE(iter == end);
- destroyComponentsInt(&c);
- }
- static void testRemove() {
- ComponentsInt c;
- initComponentsInt(&c);
- *getOrAddComponentInt(&c, 1) = 10;
- *getOrAddComponentInt(&c, 5) = 20;
- *getOrAddComponentInt(&c, 10) = 30;
- TEST_FALSE(removeComponentInt(&c, 20));
- TEST_TRUE(removeComponentInt(&c, 5));
- TEST_FALSE(removeComponentInt(&c, 30));
- *getOrAddComponentInt(&c, 20) = 40;
- TEST_TRUE(removeComponentInt(&c, 20));
- int* i1 = searchComponentInt(&c, 1);
- int* i3 = searchComponentInt(&c, 10);
- TEST_NULL(searchComponentInt(&c, 5));
- if(TEST_NOT_NULL(i1) && TEST_NOT_NULL(i3)) {
- TEST_INT(10, *i1);
- TEST_INT(30, *i3);
- }
- TEST_TRUE(removeComponentInt(&c, 10));
- i1 = searchComponentInt(&c, 1);
- TEST_NULL(searchComponentInt(&c, 5));
- TEST_NULL(searchComponentInt(&c, 10));
- if(TEST_NOT_NULL(i1)) {
- TEST_INT(10, *i1);
- }
- TEST_TRUE(removeComponentInt(&c, 1));
- TEST_NULL(searchComponentInt(&c, 1));
- TEST_NULL(searchComponentInt(&c, 5));
- TEST_NULL(searchComponentInt(&c, 10));
- destroyComponentsInt(&c);
- }
- void testComponents() {
- testAddForEach();
- testAddComponentForEach();
- testRemove();
- }
|