Expanded array tests, read more

Getting the array's length is still not available yet, so I'm not
marking arrays as done - but everything that is there is tested.

I've also tweaked the assert output callbacks to also print 'assert failure'.
This commit is contained in:
2024-12-09 12:11:31 +11:00
parent 61a105db2d
commit 1a36c14247
17 changed files with 163 additions and 153 deletions

View File

@@ -28,7 +28,7 @@ TOY_API Toy_Array* Toy_resizeArray(Toy_Array* array, unsigned int capacity);
//quick free
#ifndef TOY_ARRAY_FREE
#define TOY_ARRAY_FREE(array) Toy_resizeArray(array, 0)
#define TOY_ARRAY_FREE(array) (array = Toy_resizeArray(array, 0))
#endif
//one line to expand the array
@@ -38,7 +38,7 @@ TOY_API Toy_Array* Toy_resizeArray(Toy_Array* array, unsigned int capacity);
//quick push back
#ifndef TOY_ARRAY_PUSHBACK
#define TOY_ARRAY_PUSHBACK(array, value) (TOY_ARRAY_EXPAND(array),(array)->data[(array)->count++] = (value))
#define TOY_ARRAY_PUSHBACK(array, value) (TOY_ARRAY_EXPAND(array), (array)->data[(array)->count++] = (value))
#endif
//URGENT: get array length in scripts (dot operator?)

View File

@@ -10,9 +10,13 @@ static void errDefault(const char* msg) {
fprintf(stderr, "%s", msg);
}
static void assertDefault(const char* msg) {
fprintf(stderr, "%s", msg);
}
static Toy_callbackType printCallback = outDefault;
static Toy_callbackType errorCallback = errDefault;
static Toy_callbackType assertCallback = errDefault;
static Toy_callbackType assertCallback = assertDefault;
void Toy_print(const char* msg) {
printCallback(msg);
@@ -47,5 +51,5 @@ void Toy_resetErrorCallback() {
}
void Toy_resetAssertFailureCallback() {
assertCallback = errDefault;
assertCallback = assertDefault;
}

View File

@@ -226,7 +226,7 @@ bool Toy_checkValuesAreEqual(Toy_Value left, Toy_Value right) {
for (unsigned int i = 0; i < leftArray->count; i++) {
//any mismatch is an easy difference
if (Toy_checkValuesAreEqual(leftArray->data[i], rightArray->data[i])) {
if (Toy_checkValuesAreEqual(leftArray->data[i], rightArray->data[i]) != true) {
return false;
}
}