## Summary Standardize naming conventions across the entire wizapp-stdlib codebase by replacing inconsistent prefixes and snake_case with a unified `wp` prefix + CamelCase scheme. ## Changes ### Naming convention applied | Pattern | Before | After | |---|---|---| | Public functions | `wapp_module_function` | `wpModuleFunction` | | Public types | `GenericXxx`, bare `Xxx` | `WpXxx` | | Constants / enum values | `WAPP_XXX`, `SHELL_XXX` | `WP_XXX`, `WP_SHELL_XXX` | | Internal functions | `_module_function` | `_moduleFunction` | | Storage-class macros | `wapp_extern`, `wapp_intern` | `wp_extern`, `wp_intern` | ### Modules affected All 20 modules were renamed: `arena`, `array`, `dbl_list`, `queue`, `str8`, `mem_allocator`, `mem_utils`, `mem_os`, `file`, `cpath`, `log`, `shell_commander`, `shell_termcolour`, `shell_utils`, `prng/xorshift`, `uuid`, `tester`, `aliases`, `assert`, `misc_utils`, `platform` — plus their test files. ### Backward compatibility Added `src/oldnames.h` with `#define OLD_NAME NEW_NAME` for every renamed symbol, organized by module under Constants → Types → Functions sections. Existing code that includes this file will compile without changes. Reviewed-on: #12 Co-authored-by: Abdelrahman <said.abdelrahman89@gmail.com> Co-committed-by: Abdelrahman <said.abdelrahman89@gmail.com>
This commit was merged in pull request #12.
This commit is contained in:
+298
-298
@@ -3,88 +3,88 @@
|
||||
|
||||
#define ARRLEN(ARR) (sizeof(ARR) / sizeof(ARR[0]))
|
||||
|
||||
TestFuncResult test_str8_lit(void) {
|
||||
WpTestFuncResult test_str8_lit(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("Hello world");
|
||||
WpStr8 s1 = wpStr8Lit("Hello world");
|
||||
result = s1.capacity == 22 && s1.capacity != s1.size;
|
||||
|
||||
Str8 s2 = wapp_str8_lit("Different strokes for different folks");
|
||||
WpStr8 s2 = wpStr8Lit("Different strokes for different folks");
|
||||
result = result && s2.capacity == 74 && s2.capacity != s2.size;
|
||||
|
||||
Str8 s3 = wapp_str8_lit("Discretion is the better part of valour");
|
||||
WpStr8 s3 = wpStr8Lit("Discretion is the better part of valour");
|
||||
result = result && s3.capacity == 78 && s3.capacity != s3.size;
|
||||
|
||||
Str8 s4 = wapp_str8_lit("Distance lends enchantment to the view");
|
||||
WpStr8 s4 = wpStr8Lit("Distance lends enchantment to the view");
|
||||
result = result && s4.capacity == 76 && s4.capacity != s4.size;
|
||||
|
||||
Str8 s5 = wapp_str8_lit("Do as I say, not as I do");
|
||||
WpStr8 s5 = wpStr8Lit("Do as I say, not as I do");
|
||||
result = result && s5.capacity == 48 && s5.capacity != s5.size;
|
||||
|
||||
Str8 s6 = wapp_str8_lit("Do as you would be done by");
|
||||
WpStr8 s6 = wpStr8Lit("Do as you would be done by");
|
||||
result = result && s6.capacity == 52 && s6.capacity != s6.size;
|
||||
|
||||
Str8 s7 = wapp_str8_lit("Do unto others as you would have them do to you");
|
||||
WpStr8 s7 = wpStr8Lit("Do unto others as you would have them do to you");
|
||||
result = result && s7.capacity == 94 && s7.capacity != s7.size;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_lit_ro(void) {
|
||||
WpTestFuncResult test_str8_lit_ro(void) {
|
||||
b8 result;
|
||||
|
||||
Str8RO s1 = wapp_str8_lit_ro("Hello world");
|
||||
WpStr8RO s1 = wpStr8LitRo("Hello world");
|
||||
result = s1.capacity == 11 && s1.capacity == s1.size;
|
||||
|
||||
Str8RO s2 = wapp_str8_lit_ro("Different strokes for different folks");
|
||||
WpStr8RO s2 = wpStr8LitRo("Different strokes for different folks");
|
||||
result = result && s2.capacity == 37 && s2.capacity == s2.size;
|
||||
|
||||
Str8RO s3 = wapp_str8_lit_ro("Discretion is the better part of valour");
|
||||
WpStr8RO s3 = wpStr8LitRo("Discretion is the better part of valour");
|
||||
result = result && s3.capacity == 39 && s3.capacity == s3.size;
|
||||
|
||||
Str8RO s4 = wapp_str8_lit_ro("Distance lends enchantment to the view");
|
||||
WpStr8RO s4 = wpStr8LitRo("Distance lends enchantment to the view");
|
||||
result = result && s4.capacity == 38 && s4.capacity == s4.size;
|
||||
|
||||
Str8RO s5 = wapp_str8_lit_ro("Do as I say, not as I do");
|
||||
WpStr8RO s5 = wpStr8LitRo("Do as I say, not as I do");
|
||||
result = result && s5.capacity == 24 && s5.capacity == s5.size;
|
||||
|
||||
Str8RO s6 = wapp_str8_lit_ro("Do as you would be done by");
|
||||
WpStr8RO s6 = wpStr8LitRo("Do as you would be done by");
|
||||
result = result && s6.capacity == 26 && s6.capacity == s6.size;
|
||||
|
||||
Str8RO s7 = wapp_str8_lit_ro("Do unto others as you would have them do to you");
|
||||
WpStr8RO s7 = wpStr8LitRo("Do unto others as you would have them do to you");
|
||||
result = result && s7.capacity == 47 && s7.capacity == s7.size;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_buf(void) {
|
||||
WpTestFuncResult test_str8_buf(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_buf(1024);
|
||||
WpStr8 s1 = wpStr8Buf(1024);
|
||||
result = s1.capacity == 1024 && s1.size == 0;
|
||||
|
||||
Str8 s2 = wapp_str8_buf(2048);
|
||||
WpStr8 s2 = wpStr8Buf(2048);
|
||||
result = result && s2.capacity == 2048 && s2.size == 0;
|
||||
|
||||
Str8 s3 = wapp_str8_buf(4096);
|
||||
WpStr8 s3 = wpStr8Buf(4096);
|
||||
result = result && s3.capacity == 4096 && s3.size == 0;
|
||||
|
||||
Str8 s4 = wapp_str8_buf(8192);
|
||||
WpStr8 s4 = wpStr8Buf(8192);
|
||||
result = result && s4.capacity == 8192 && s4.size == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_alloc_buf(void) {
|
||||
WpTestFuncResult test_str8_alloc_buf(void) {
|
||||
b8 result;
|
||||
Allocator allocator = wapp_mem_arena_allocator_init(KiB(100));
|
||||
if (wapp_mem_allocator_invalid(&allocator)) {
|
||||
return wapp_tester_result(false);
|
||||
WpAllocator allocator = wpMemArenaAllocatorInit(KiB(100));
|
||||
if (wpMemAllocatorInvalid(&allocator)) {
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
u64 capacity = 4096;
|
||||
|
||||
Str8 *s = wapp_str8_alloc_buf(&allocator, capacity);
|
||||
WpStr8 *s = wpStr8AllocBuf(&allocator, capacity);
|
||||
if (!s) {
|
||||
result = false;
|
||||
goto TEST_ALLOC_BUF_CLEANUP;
|
||||
@@ -93,340 +93,340 @@ TestFuncResult test_str8_alloc_buf(void) {
|
||||
result = s->capacity == capacity;
|
||||
|
||||
const char *cstr = "My name is Abdelrahman";
|
||||
wapp_str8_copy_cstr_capped(s, cstr);
|
||||
wpStr8CopyCstrCapped(s, cstr);
|
||||
|
||||
result = result && s->capacity == capacity && s->size == strlen(cstr) && memcmp(s->buf, cstr, s->size) == 0;
|
||||
|
||||
TEST_ALLOC_BUF_CLEANUP:
|
||||
wapp_mem_arena_allocator_destroy(&allocator);
|
||||
wpMemArenaAllocatorDestroy(&allocator);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_alloc_cstr(void) {
|
||||
WpTestFuncResult test_str8_alloc_cstr(void) {
|
||||
b8 result;
|
||||
Allocator allocator = wapp_mem_arena_allocator_init(KiB(100));
|
||||
if (wapp_mem_allocator_invalid(&allocator)) {
|
||||
return wapp_tester_result(false);
|
||||
WpAllocator allocator = wpMemArenaAllocatorInit(KiB(100));
|
||||
if (wpMemAllocatorInvalid(&allocator)) {
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
char *str = "Abdelrahman";
|
||||
u64 length = strlen(str);
|
||||
Str8 *s = wapp_str8_alloc_cstr(&allocator, str);
|
||||
WpStr8 *s = wpStr8AllocCstr(&allocator, str);
|
||||
if (!s) {
|
||||
return wapp_tester_result(false);
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
result = s->size == length && memcmp(s->buf, str, length) == 0;
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&allocator);
|
||||
wpMemArenaAllocatorDestroy(&allocator);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_alloc_str8(void) {
|
||||
WpTestFuncResult test_str8_alloc_str8(void) {
|
||||
b8 result;
|
||||
Allocator allocator = wapp_mem_arena_allocator_init(KiB(100));
|
||||
if (wapp_mem_allocator_invalid(&allocator)) {
|
||||
return wapp_tester_result(false);
|
||||
WpAllocator allocator = wpMemArenaAllocatorInit(KiB(100));
|
||||
if (wpMemAllocatorInvalid(&allocator)) {
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
Str8 str = wapp_str8_lit("Abdelrahman");
|
||||
Str8 *s = wapp_str8_alloc_str8(&allocator, &str);
|
||||
WpStr8 str = wpStr8Lit("Abdelrahman");
|
||||
WpStr8 *s = wpStr8AllocStr8(&allocator, &str);
|
||||
if (!s) {
|
||||
return wapp_tester_result(false);
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
result = wapp_str8_equal(s, &str);
|
||||
result = wpStr8Equal(s, &str);
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&allocator);
|
||||
wpMemArenaAllocatorDestroy(&allocator);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_alloc_substr(void) {
|
||||
WpTestFuncResult test_str8_alloc_substr(void) {
|
||||
b8 result;
|
||||
Allocator allocator = wapp_mem_arena_allocator_init(KiB(100));
|
||||
if (wapp_mem_allocator_invalid(&allocator)) {
|
||||
return wapp_tester_result(false);
|
||||
WpAllocator allocator = wpMemArenaAllocatorInit(KiB(100));
|
||||
if (wpMemAllocatorInvalid(&allocator)) {
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
Str8 str = wapp_str8_lit("Abdelrahman");
|
||||
Str8 *s = wapp_str8_alloc_substr(&allocator, &str, 3, 8);
|
||||
WpStr8 str = wpStr8Lit("Abdelrahman");
|
||||
WpStr8 *s = wpStr8AllocSubstr(&allocator, &str, 3, 8);
|
||||
if (!s) {
|
||||
return wapp_tester_result(false);
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
result = s->size == 5 && memcmp(s->buf, "elrah", s->size) == 0;
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&allocator);
|
||||
wpMemArenaAllocatorDestroy(&allocator);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_get_index_within_bounds(void) {
|
||||
WpTestFuncResult test_str8_get_index_within_bounds(void) {
|
||||
b8 result;
|
||||
|
||||
Str8RO s1 = wapp_str8_lit_ro("Hello world");
|
||||
result = wapp_str8_get(&s1, 4) == 'o';
|
||||
WpStr8RO s1 = wpStr8LitRo("Hello world");
|
||||
result = wpStr8Get(&s1, 4) == 'o';
|
||||
|
||||
Str8RO s2 = wapp_str8_lit_ro("Different strokes for different folks");
|
||||
result = result && wapp_str8_get(&s2, 0) == 'D';
|
||||
WpStr8RO s2 = wpStr8LitRo("Different strokes for different folks");
|
||||
result = result && wpStr8Get(&s2, 0) == 'D';
|
||||
|
||||
Str8RO s3 = wapp_str8_lit_ro("Discretion is the better part of valour");
|
||||
result = result && wapp_str8_get(&s3, 13) == ' ';
|
||||
WpStr8RO s3 = wpStr8LitRo("Discretion is the better part of valour");
|
||||
result = result && wpStr8Get(&s3, 13) == ' ';
|
||||
|
||||
Str8RO s4 = wapp_str8_lit_ro("Distance lends enchantment to the view");
|
||||
result = result && wapp_str8_get(&s4, 20) == 'n';
|
||||
WpStr8RO s4 = wpStr8LitRo("Distance lends enchantment to the view");
|
||||
result = result && wpStr8Get(&s4, 20) == 'n';
|
||||
|
||||
Str8RO s5 = wapp_str8_lit_ro("Do as I say, not as I do");
|
||||
result = result && wapp_str8_get(&s5, 11) == ',';
|
||||
WpStr8RO s5 = wpStr8LitRo("Do as I say, not as I do");
|
||||
result = result && wpStr8Get(&s5, 11) == ',';
|
||||
|
||||
Str8RO s6 = wapp_str8_lit_ro("Do as you would be done by");
|
||||
result = result && wapp_str8_get(&s6, 25) == 'y';
|
||||
WpStr8RO s6 = wpStr8LitRo("Do as you would be done by");
|
||||
result = result && wpStr8Get(&s6, 25) == 'y';
|
||||
|
||||
Str8RO s7 = wapp_str8_lit_ro("Do unto others as you would have them do to you");
|
||||
result = result && wapp_str8_get(&s7, 16) == 's';
|
||||
WpStr8RO s7 = wpStr8LitRo("Do unto others as you would have them do to you");
|
||||
result = result && wpStr8Get(&s7, 16) == 's';
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_get_index_out_of_bounds(void) {
|
||||
Str8 s1 = wapp_str8_lit("Hello world");
|
||||
b8 result = wapp_str8_get(&s1, 20) == '\0';
|
||||
return wapp_tester_result(result);
|
||||
WpTestFuncResult test_str8_get_index_out_of_bounds(void) {
|
||||
WpStr8 s1 = wpStr8Lit("Hello world");
|
||||
b8 result = wpStr8Get(&s1, 20) == '\0';
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_set(void) {
|
||||
WpTestFuncResult test_str8_set(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("Hello world");
|
||||
wapp_str8_set(&s1, 4, 'f');
|
||||
result = wapp_str8_get(&s1, 4) == 'f';
|
||||
WpStr8 s1 = wpStr8Lit("Hello world");
|
||||
wpStr8Set(&s1, 4, 'f');
|
||||
result = wpStr8Get(&s1, 4) == 'f';
|
||||
|
||||
Str8 s2 = wapp_str8_lit("Different strokes for different folks");
|
||||
wapp_str8_set(&s2, 0, 'A');
|
||||
result = result && wapp_str8_get(&s2, 0) == 'A';
|
||||
WpStr8 s2 = wpStr8Lit("Different strokes for different folks");
|
||||
wpStr8Set(&s2, 0, 'A');
|
||||
result = result && wpStr8Get(&s2, 0) == 'A';
|
||||
|
||||
Str8 s3 = wapp_str8_lit("Discretion is the better part of valour");
|
||||
wapp_str8_set(&s3, 13, 'u');
|
||||
result = result && wapp_str8_get(&s3, 13) == 'u';
|
||||
WpStr8 s3 = wpStr8Lit("Discretion is the better part of valour");
|
||||
wpStr8Set(&s3, 13, 'u');
|
||||
result = result && wpStr8Get(&s3, 13) == 'u';
|
||||
|
||||
Str8 s4 = wapp_str8_lit("Distance lends enchantment to the view");
|
||||
wapp_str8_set(&s4, 20, 'R');
|
||||
result = result && wapp_str8_get(&s4, 20) == 'R';
|
||||
WpStr8 s4 = wpStr8Lit("Distance lends enchantment to the view");
|
||||
wpStr8Set(&s4, 20, 'R');
|
||||
result = result && wpStr8Get(&s4, 20) == 'R';
|
||||
|
||||
Str8 s5 = wapp_str8_lit("Do as I say, not as I do");
|
||||
wapp_str8_set(&s5, 11, '.');
|
||||
result = result && wapp_str8_get(&s5, 11) == '.';
|
||||
WpStr8 s5 = wpStr8Lit("Do as I say, not as I do");
|
||||
wpStr8Set(&s5, 11, '.');
|
||||
result = result && wpStr8Get(&s5, 11) == '.';
|
||||
|
||||
Str8 s6 = wapp_str8_lit("Do as you would be done by");
|
||||
wapp_str8_set(&s6, 25, 'w');
|
||||
result = result && wapp_str8_get(&s6, 25) == 'w';
|
||||
WpStr8 s6 = wpStr8Lit("Do as you would be done by");
|
||||
wpStr8Set(&s6, 25, 'w');
|
||||
result = result && wpStr8Get(&s6, 25) == 'w';
|
||||
|
||||
Str8 s7 = wapp_str8_lit("Do unto others as you would have them do to you");
|
||||
wapp_str8_set(&s7, 16, 'i');
|
||||
result = result && wapp_str8_get(&s7, 16) == 'i';
|
||||
WpStr8 s7 = wpStr8Lit("Do unto others as you would have them do to you");
|
||||
wpStr8Set(&s7, 16, 'i');
|
||||
result = result && wpStr8Get(&s7, 16) == 'i';
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_push_back(void) {
|
||||
WpTestFuncResult test_str8_push_back(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 expected = wapp_str8_lit("Abdelrahman");
|
||||
Str8 buf = wapp_str8_buf(64);
|
||||
wapp_str8_push_back(&buf, 'A');
|
||||
wapp_str8_push_back(&buf, 'b');
|
||||
wapp_str8_push_back(&buf, 'd');
|
||||
wapp_str8_push_back(&buf, 'e');
|
||||
wapp_str8_push_back(&buf, 'l');
|
||||
wapp_str8_push_back(&buf, 'r');
|
||||
wapp_str8_push_back(&buf, 'a');
|
||||
wapp_str8_push_back(&buf, 'h');
|
||||
wapp_str8_push_back(&buf, 'm');
|
||||
wapp_str8_push_back(&buf, 'a');
|
||||
wapp_str8_push_back(&buf, 'n');
|
||||
WpStr8 expected = wpStr8Lit("Abdelrahman");
|
||||
WpStr8 buf = wpStr8Buf(64);
|
||||
wpStr8PushBack(&buf, 'A');
|
||||
wpStr8PushBack(&buf, 'b');
|
||||
wpStr8PushBack(&buf, 'd');
|
||||
wpStr8PushBack(&buf, 'e');
|
||||
wpStr8PushBack(&buf, 'l');
|
||||
wpStr8PushBack(&buf, 'r');
|
||||
wpStr8PushBack(&buf, 'a');
|
||||
wpStr8PushBack(&buf, 'h');
|
||||
wpStr8PushBack(&buf, 'm');
|
||||
wpStr8PushBack(&buf, 'a');
|
||||
wpStr8PushBack(&buf, 'n');
|
||||
|
||||
result = wapp_str8_equal(&buf, &expected);
|
||||
result = wpStr8Equal(&buf, &expected);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_equal(void) {
|
||||
WpTestFuncResult test_str8_equal(void) {
|
||||
b8 result;
|
||||
|
||||
Str8RO s1 = wapp_str8_lit_ro("hello");
|
||||
Str8RO s2 = wapp_str8_lit_ro("hell");
|
||||
Str8RO s3 = wapp_str8_lit_ro("hello");
|
||||
Str8RO s4 = wapp_str8_lit_ro("goodbye");
|
||||
WpStr8RO s1 = wpStr8LitRo("hello");
|
||||
WpStr8RO s2 = wpStr8LitRo("hell");
|
||||
WpStr8RO s3 = wpStr8LitRo("hello");
|
||||
WpStr8RO s4 = wpStr8LitRo("goodbye");
|
||||
|
||||
result = wapp_str8_equal(&s1, &s2) == false;
|
||||
result = result && wapp_str8_equal(&s1, &s3) == true;
|
||||
result = result && wapp_str8_equal(&s1, &s4) == false;
|
||||
result = wpStr8Equal(&s1, &s2) == false;
|
||||
result = result && wpStr8Equal(&s1, &s3) == true;
|
||||
result = result && wpStr8Equal(&s1, &s4) == false;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_slice(void) {
|
||||
WpTestFuncResult test_str8_slice(void) {
|
||||
b8 result;
|
||||
Str8 s = wapp_str8_lit("Different strokes for different folks");
|
||||
WpStr8 s = wpStr8Lit("Different strokes for different folks");
|
||||
|
||||
Str8RO sub1 = wapp_str8_slice(&s, 3, 9);
|
||||
WpStr8RO sub1 = wpStr8Slice(&s, 3, 9);
|
||||
result = sub1.size == 6 && sub1.capacity == 6;
|
||||
|
||||
Str8RO sub2 = wapp_str8_slice(&s, 18, 21);
|
||||
WpStr8RO sub2 = wpStr8Slice(&s, 18, 21);
|
||||
result = result && sub2.size == 3 && sub2.capacity == 3;
|
||||
|
||||
Str8RO sub3 = wapp_str8_slice(&s, 5, 1);
|
||||
WpStr8RO sub3 = wpStr8Slice(&s, 5, 1);
|
||||
result = result && sub3.size == 0 && sub3.capacity == 0;
|
||||
|
||||
Str8RO sub4 = wapp_str8_slice(&s, 70, 80);
|
||||
WpStr8RO sub4 = wpStr8Slice(&s, 70, 80);
|
||||
result = result && sub4.size == 0 && sub4.capacity == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_alloc_concat(void) {
|
||||
WpTestFuncResult test_str8_alloc_concat(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("Hello world");
|
||||
Str8 suffix1 = wapp_str8_lit(" from me.");
|
||||
Str8 suffix2 = wapp_str8_lit(" This is my code.");
|
||||
Str8 concat1 = wapp_str8_lit("Hello world from me.");
|
||||
Str8 concat2 = wapp_str8_lit("Hello world from me. This is my code.");
|
||||
WpStr8 str = wpStr8Lit("Hello world");
|
||||
WpStr8 suffix1 = wpStr8Lit(" from me.");
|
||||
WpStr8 suffix2 = wpStr8Lit(" This is my code.");
|
||||
WpStr8 concat1 = wpStr8Lit("Hello world from me.");
|
||||
WpStr8 concat2 = wpStr8Lit("Hello world from me. This is my code.");
|
||||
|
||||
Str8 *output;
|
||||
WpStr8 *output;
|
||||
|
||||
output = wapp_str8_alloc_concat(&arena, &str, &suffix1);
|
||||
result = output->size == concat1.size && wapp_str8_equal(output, &concat1);
|
||||
output = wpStr8AllocConcat(&arena, &str, &suffix1);
|
||||
result = output->size == concat1.size && wpStr8Equal(output, &concat1);
|
||||
|
||||
output = wapp_str8_alloc_concat(&arena, output, &suffix2);
|
||||
result = result && output->size == concat2.size && wapp_str8_equal(output, &concat2);
|
||||
output = wpStr8AllocConcat(&arena, output, &suffix2);
|
||||
result = result && output->size == concat2.size && wpStr8Equal(output, &concat2);
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_concat_capped(void) {
|
||||
WpTestFuncResult test_str8_concat_capped(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 str = wapp_str8_lit("Hello world");
|
||||
Str8 suffix1 = wapp_str8_lit(" from me.");
|
||||
Str8 suffix2 = wapp_str8_lit(" This is my code.");
|
||||
Str8 concat1 = wapp_str8_lit("Hello world from me.");
|
||||
Str8 concat2 = wapp_str8_lit("Hello world from me. T");
|
||||
WpStr8 str = wpStr8Lit("Hello world");
|
||||
WpStr8 suffix1 = wpStr8Lit(" from me.");
|
||||
WpStr8 suffix2 = wpStr8Lit(" This is my code.");
|
||||
WpStr8 concat1 = wpStr8Lit("Hello world from me.");
|
||||
WpStr8 concat2 = wpStr8Lit("Hello world from me. T");
|
||||
|
||||
wapp_str8_concat_capped(&str, &suffix1);
|
||||
result = str.size == concat1.size && wapp_str8_equal(&str, &concat1);
|
||||
wpStr8ConcatCapped(&str, &suffix1);
|
||||
result = str.size == concat1.size && wpStr8Equal(&str, &concat1);
|
||||
|
||||
wapp_str8_concat_capped(&str, &suffix2);
|
||||
result = result && str.size == concat2.size && wapp_str8_equal(&str, &concat2);
|
||||
wpStr8ConcatCapped(&str, &suffix2);
|
||||
result = result && str.size == concat2.size && wpStr8Equal(&str, &concat2);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_copy_cstr_capped(void) {
|
||||
WpTestFuncResult test_str8_copy_cstr_capped(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 buf = wapp_str8_buf(32);
|
||||
WpStr8 buf = wpStr8Buf(32);
|
||||
const char *src1 = "Hello world";
|
||||
const char *src2 = "Hello world from the Wizard Apprentice standard library";
|
||||
Str8RO src1_cp = wapp_str8_lit_ro("Hello world");
|
||||
Str8RO src2_cp = wapp_str8_lit_ro("Hello world from the Wizard Appr");
|
||||
WpStr8RO src1_cp = wpStr8LitRo("Hello world");
|
||||
WpStr8RO src2_cp = wpStr8LitRo("Hello world from the Wizard Appr");
|
||||
|
||||
wapp_str8_copy_cstr_capped(&buf, src1);
|
||||
result = buf.size == src1_cp.size && wapp_str8_equal(&buf, &src1_cp);
|
||||
wpStr8CopyCstrCapped(&buf, src1);
|
||||
result = buf.size == src1_cp.size && wpStr8Equal(&buf, &src1_cp);
|
||||
|
||||
wapp_str8_copy_cstr_capped(&buf, src2);
|
||||
result = result && buf.size == src2_cp.size && buf.size == buf.capacity && wapp_str8_equal(&buf, &src2_cp);
|
||||
wpStr8CopyCstrCapped(&buf, src2);
|
||||
result = result && buf.size == src2_cp.size && buf.size == buf.capacity && wpStr8Equal(&buf, &src2_cp);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_copy_str8_capped(void) {
|
||||
WpTestFuncResult test_str8_copy_str8_capped(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 buf = wapp_str8_buf(32);
|
||||
Str8RO src1 = wapp_str8_lit_ro("Hello world");
|
||||
Str8RO src2 = wapp_str8_lit_ro("Hello world from the Wizard Apprentice standard library");
|
||||
Str8RO src2_cp = wapp_str8_lit_ro("Hello world from the Wizard Appr");
|
||||
WpStr8 buf = wpStr8Buf(32);
|
||||
WpStr8RO src1 = wpStr8LitRo("Hello world");
|
||||
WpStr8RO src2 = wpStr8LitRo("Hello world from the Wizard Apprentice standard library");
|
||||
WpStr8RO src2_cp = wpStr8LitRo("Hello world from the Wizard Appr");
|
||||
|
||||
wapp_str8_copy_str8_capped(&buf, &src1);
|
||||
result = buf.size == src1.size && wapp_str8_equal(&buf, &src1);
|
||||
wpStr8CopyStr8Capped(&buf, &src1);
|
||||
result = buf.size == src1.size && wpStr8Equal(&buf, &src1);
|
||||
|
||||
wapp_str8_copy_str8_capped(&buf, &src2);
|
||||
result = result && buf.size < src2.size && buf.size == buf.capacity && wapp_str8_equal(&buf, &src2_cp);
|
||||
wpStr8CopyStr8Capped(&buf, &src2);
|
||||
result = result && buf.size < src2.size && buf.size == buf.capacity && wpStr8Equal(&buf, &src2_cp);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_format(void) {
|
||||
WpTestFuncResult test_str8_format(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 buf = wapp_str8_buf(128);
|
||||
Str8 expected = wapp_str8_lit("My name is Abdelrahman and I am 35 years old");
|
||||
WpStr8 buf = wpStr8Buf(128);
|
||||
WpStr8 expected = wpStr8Lit("My name is Abdelrahman and I am 35 years old");
|
||||
|
||||
wapp_str8_format(&buf, "My name is %s and I am %u years old", "Abdelrahman", 35);
|
||||
wpStr8Format(&buf, "My name is %s and I am %u years old", "Abdelrahman", 35);
|
||||
|
||||
result = wapp_str8_equal(&buf, &expected);
|
||||
result = wpStr8Equal(&buf, &expected);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_find(void) {
|
||||
WpTestFuncResult test_str8_find(void) {
|
||||
b8 result;
|
||||
Str8RO s = wapp_str8_lit("Do as I say, not as I do");
|
||||
WpStr8RO s = wpStr8Lit("Do as I say, not as I do");
|
||||
|
||||
result = wapp_str8_find(&s, wapp_str8_lit_ro("d")) != -1;
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("not")) != -1);
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("as I say")) != -1);
|
||||
result = wpStr8Find(&s, wpStr8LitRo("d")) != -1;
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("not")) != -1);
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("as I say")) != -1);
|
||||
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("f")) == -1);
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("hello")) == -1);
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("not sa I")) == -1);
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("Do unto others as you would have them do to you")) == -1);
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("f")) == -1);
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("hello")) == -1);
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("not sa I")) == -1);
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("Do unto others as you would have them do to you")) == -1);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_rfind(void) {
|
||||
WpTestFuncResult test_str8_rfind(void) {
|
||||
b8 result;
|
||||
Str8RO s = wapp_str8_lit("Do as I say, not as I do");
|
||||
WpStr8RO s = wpStr8Lit("Do as I say, not as I do");
|
||||
|
||||
result = wapp_str8_rfind(&s, wapp_str8_lit_ro("d")) != -1;
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("not")) != -1);
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("as I say")) != -1);
|
||||
result = wpStr8Rfind(&s, wpStr8LitRo("d")) != -1;
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("not")) != -1);
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("as I say")) != -1);
|
||||
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("f")) == -1);
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("hello")) == -1);
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("not sa I")) == -1);
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("Do unto others as you would have them do to you")) == -1);
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("f")) == -1);
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("hello")) == -1);
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("not sa I")) == -1);
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("Do unto others as you would have them do to you")) == -1);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_split(void) {
|
||||
WpTestFuncResult test_str8_split(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("hello world from me");
|
||||
Str8 delim1 = wapp_str8_lit(" ");
|
||||
Str8 delim2 = wapp_str8_lit("from");
|
||||
Str8List *list1 = wapp_str8_split(&arena, &str, &delim1);
|
||||
Str8List *list2 = wapp_str8_split(&arena, &str, &delim2);
|
||||
WpStr8 str = wpStr8Lit("hello world from me");
|
||||
WpStr8 delim1 = wpStr8Lit(" ");
|
||||
WpStr8 delim2 = wpStr8Lit("from");
|
||||
WpStr8List *list1 = wpStr8Split(&arena, &str, &delim1);
|
||||
WpStr8List *list2 = wpStr8Split(&arena, &str, &delim2);
|
||||
|
||||
Str8RO splits1[] = {
|
||||
wapp_str8_slice(&str, 0, 5),
|
||||
wapp_str8_slice(&str, 6, 11),
|
||||
wapp_str8_slice(&str, 12, 16),
|
||||
wapp_str8_slice(&str, 17, 19),
|
||||
WpStr8RO splits1[] = {
|
||||
wpStr8Slice(&str, 0, 5),
|
||||
wpStr8Slice(&str, 6, 11),
|
||||
wpStr8Slice(&str, 12, 16),
|
||||
wpStr8Slice(&str, 17, 19),
|
||||
};
|
||||
Str8RO splits2[] = {
|
||||
wapp_str8_slice(&str, 0, 12),
|
||||
wapp_str8_slice(&str, 16, 19),
|
||||
WpStr8RO splits2[] = {
|
||||
wpStr8Slice(&str, 0, 12),
|
||||
wpStr8Slice(&str, 16, 19),
|
||||
};
|
||||
|
||||
u64 index1 = 0;
|
||||
@@ -437,14 +437,14 @@ TestFuncResult test_str8_split(void) {
|
||||
u64 count2 = ARRLEN(splits2);
|
||||
b8 running2 = true;
|
||||
|
||||
result = list1->node_count == count1 && wapp_str8_list_total_size(list1) == str.size - 3;
|
||||
result = result && list2->node_count == count2 && wapp_str8_list_total_size(list2) == str.size - 4;
|
||||
result = list1->node_count == count1 && wpStr8ListTotalSize(list1) == str.size - 3;
|
||||
result = result && list2->node_count == count2 && wpStr8ListTotalSize(list2) == str.size - 4;
|
||||
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running1) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list1, index1);
|
||||
result = result && wapp_str8_equal(node, &(splits1[index1]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list1, index1);
|
||||
result = result && wpStr8Equal(node, &(splits1[index1]));
|
||||
|
||||
++index1;
|
||||
running1 = index1 < count1;
|
||||
@@ -453,72 +453,72 @@ TestFuncResult test_str8_split(void) {
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running2) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list2, index2);
|
||||
result = result && wapp_str8_equal(node, &(splits2[index2]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list2, index2);
|
||||
result = result && wpStr8Equal(node, &(splits2[index2]));
|
||||
|
||||
++index2;
|
||||
running2 = index2 < count2;
|
||||
}
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_split_with_max(void) {
|
||||
WpTestFuncResult test_str8_split_with_max(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("hello world from me");
|
||||
Str8 delim = wapp_str8_lit(" ");
|
||||
Str8List *list = wapp_str8_split_with_max(&arena, &str, &delim, 2);
|
||||
WpStr8 str = wpStr8Lit("hello world from me");
|
||||
WpStr8 delim = wpStr8Lit(" ");
|
||||
WpStr8List *list = wpStr8SplitWithMax(&arena, &str, &delim, 2);
|
||||
|
||||
Str8RO splits[] = {
|
||||
wapp_str8_slice(&str, 0, 5),
|
||||
wapp_str8_slice(&str, 6, 11),
|
||||
wapp_str8_slice(&str, 12, 19),
|
||||
WpStr8RO splits[] = {
|
||||
wpStr8Slice(&str, 0, 5),
|
||||
wpStr8Slice(&str, 6, 11),
|
||||
wpStr8Slice(&str, 12, 19),
|
||||
};
|
||||
|
||||
u64 index = 0;
|
||||
u64 count = ARRLEN(splits);
|
||||
b8 running = true;
|
||||
|
||||
result = list->node_count == count && wapp_str8_list_total_size(list) == str.size - 2;
|
||||
result = list->node_count == count && wpStr8ListTotalSize(list) == str.size - 2;
|
||||
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list, index);
|
||||
result = result && wapp_str8_equal(node, &(splits[index]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list, index);
|
||||
result = result && wpStr8Equal(node, &(splits[index]));
|
||||
|
||||
++index;
|
||||
running = index < count;
|
||||
}
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_rsplit(void) {
|
||||
WpTestFuncResult test_str8_rsplit(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("hello world from me");
|
||||
Str8 delim1 = wapp_str8_lit(" ");
|
||||
Str8 delim2 = wapp_str8_lit("from");
|
||||
Str8List *list1 = wapp_str8_rsplit(&arena, &str, &delim1);
|
||||
Str8List *list2 = wapp_str8_rsplit(&arena, &str, &delim2);
|
||||
WpStr8 str = wpStr8Lit("hello world from me");
|
||||
WpStr8 delim1 = wpStr8Lit(" ");
|
||||
WpStr8 delim2 = wpStr8Lit("from");
|
||||
WpStr8List *list1 = wpStr8Rsplit(&arena, &str, &delim1);
|
||||
WpStr8List *list2 = wpStr8Rsplit(&arena, &str, &delim2);
|
||||
|
||||
Str8RO splits1[] = {
|
||||
wapp_str8_slice(&str, 0, 5),
|
||||
wapp_str8_slice(&str, 6, 11),
|
||||
wapp_str8_slice(&str, 12, 16),
|
||||
wapp_str8_slice(&str, 17, 19),
|
||||
WpStr8RO splits1[] = {
|
||||
wpStr8Slice(&str, 0, 5),
|
||||
wpStr8Slice(&str, 6, 11),
|
||||
wpStr8Slice(&str, 12, 16),
|
||||
wpStr8Slice(&str, 17, 19),
|
||||
};
|
||||
Str8RO splits2[] = {
|
||||
wapp_str8_slice(&str, 0, 12),
|
||||
wapp_str8_slice(&str, 16, 19),
|
||||
WpStr8RO splits2[] = {
|
||||
wpStr8Slice(&str, 0, 12),
|
||||
wpStr8Slice(&str, 16, 19),
|
||||
};
|
||||
|
||||
u64 index1 = 0;
|
||||
@@ -529,14 +529,14 @@ TestFuncResult test_str8_rsplit(void) {
|
||||
u64 count2 = ARRLEN(splits2);
|
||||
b8 running2 = true;
|
||||
|
||||
result = list1->node_count == count1 && wapp_str8_list_total_size(list1) == str.size - 3;
|
||||
result = result && list2->node_count == count2 && wapp_str8_list_total_size(list2) == str.size - 4;
|
||||
result = list1->node_count == count1 && wpStr8ListTotalSize(list1) == str.size - 3;
|
||||
result = result && list2->node_count == count2 && wpStr8ListTotalSize(list2) == str.size - 4;
|
||||
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running1) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list1, index1);
|
||||
result = result && wapp_str8_equal(node, &(splits1[index1]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list1, index1);
|
||||
result = result && wpStr8Equal(node, &(splits1[index1]));
|
||||
|
||||
++index1;
|
||||
running1 = index1 < count1;
|
||||
@@ -545,82 +545,82 @@ TestFuncResult test_str8_rsplit(void) {
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running2) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list2, index2);
|
||||
result = result && wapp_str8_equal(node, &(splits2[index2]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list2, index2);
|
||||
result = result && wpStr8Equal(node, &(splits2[index2]));
|
||||
|
||||
++index2;
|
||||
running2 = index2 < count2;
|
||||
}
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_rsplit_with_max(void) {
|
||||
WpTestFuncResult test_str8_rsplit_with_max(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("hello world from me");
|
||||
Str8 delim = wapp_str8_lit(" ");
|
||||
Str8List *list = wapp_str8_rsplit_with_max(&arena, &str, &delim, 2);
|
||||
WpStr8 str = wpStr8Lit("hello world from me");
|
||||
WpStr8 delim = wpStr8Lit(" ");
|
||||
WpStr8List *list = wpStr8RsplitWithMax(&arena, &str, &delim, 2);
|
||||
|
||||
Str8RO splits[] = {
|
||||
wapp_str8_slice(&str, 0, 11),
|
||||
wapp_str8_slice(&str, 12, 16),
|
||||
wapp_str8_slice(&str, 17, 19),
|
||||
WpStr8RO splits[] = {
|
||||
wpStr8Slice(&str, 0, 11),
|
||||
wpStr8Slice(&str, 12, 16),
|
||||
wpStr8Slice(&str, 17, 19),
|
||||
};
|
||||
|
||||
u64 index = 0;
|
||||
u64 count = ARRLEN(splits);
|
||||
b8 running = true;
|
||||
|
||||
result = list->node_count == count && wapp_str8_list_total_size(list) == str.size - 2;
|
||||
result = list->node_count == count && wpStr8ListTotalSize(list) == str.size - 2;
|
||||
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list, index);
|
||||
result = result && wapp_str8_equal(node, &(splits[index]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list, index);
|
||||
result = result && wpStr8Equal(node, &(splits[index]));
|
||||
|
||||
++index;
|
||||
running = index < count;
|
||||
}
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_join(void) {
|
||||
WpTestFuncResult test_str8_join(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("hello world from me");
|
||||
Str8 delim1 = wapp_str8_lit(" ");
|
||||
Str8 delim2 = wapp_str8_lit("from");
|
||||
Str8List *list1 = wapp_str8_rsplit(&arena, &str, &delim1);
|
||||
Str8List *list2 = wapp_str8_rsplit(&arena, &str, &delim2);
|
||||
Str8 *join1 = wapp_str8_join(&arena, list1, &delim1);
|
||||
Str8 *join2 = wapp_str8_join(&arena, list2, &delim2);
|
||||
WpStr8 str = wpStr8Lit("hello world from me");
|
||||
WpStr8 delim1 = wpStr8Lit(" ");
|
||||
WpStr8 delim2 = wpStr8Lit("from");
|
||||
WpStr8List *list1 = wpStr8Rsplit(&arena, &str, &delim1);
|
||||
WpStr8List *list2 = wpStr8Rsplit(&arena, &str, &delim2);
|
||||
WpStr8 *join1 = wpStr8Join(&arena, list1, &delim1);
|
||||
WpStr8 *join2 = wpStr8Join(&arena, list2, &delim2);
|
||||
|
||||
result = join1->size == str.size && wapp_str8_equal(join1, &str);
|
||||
result = result && join2->size == str.size && wapp_str8_equal(join2, &str);
|
||||
result = join1->size == str.size && wpStr8Equal(join1, &str);
|
||||
result = result && join2->size == str.size && wpStr8Equal(join2, &str);
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_from_bytes(void) {
|
||||
WpTestFuncResult test_str8_from_bytes(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 str = wapp_str8_buf(1024);
|
||||
U8Array bytes = wapp_array(u8, 'W', 'A', 'P', 'P');
|
||||
wapp_str8_from_bytes(&str, bytes);
|
||||
WpStr8 str = wpStr8Buf(1024);
|
||||
WpU8Array bytes = wpArray(u8, 'W', 'A', 'P', 'P');
|
||||
wpStr8FromBytes(&str, bytes);
|
||||
|
||||
result = str.size == wapp_array_count(bytes) * wapp_array_item_size(bytes);
|
||||
result = result && wapp_str8_equal(&str, &wapp_str8_lit_ro("WAPP"));
|
||||
result = str.size == wpArrayCount(bytes) * wpArrayItemSize(bytes);
|
||||
result = result && wpStr8Equal(&str, &wpStr8LitRo("WAPP"));
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
+301
-301
@@ -3,430 +3,430 @@
|
||||
|
||||
#define ARRLEN(ARR) (sizeof(ARR) / sizeof(ARR[0]))
|
||||
|
||||
TestFuncResult test_str8_lit(void) {
|
||||
WpTestFuncResult test_str8_lit(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("Hello world");
|
||||
WpStr8 s1 = wpStr8Lit("Hello world");
|
||||
result = s1.capacity == 22 && s1.capacity != s1.size;
|
||||
|
||||
Str8 s2 = wapp_str8_lit("Different strokes for different folks");
|
||||
WpStr8 s2 = wpStr8Lit("Different strokes for different folks");
|
||||
result = result && s2.capacity == 74 && s2.capacity != s2.size;
|
||||
|
||||
Str8 s3 = wapp_str8_lit("Discretion is the better part of valour");
|
||||
WpStr8 s3 = wpStr8Lit("Discretion is the better part of valour");
|
||||
result = result && s3.capacity == 78 && s3.capacity != s3.size;
|
||||
|
||||
Str8 s4 = wapp_str8_lit("Distance lends enchantment to the view");
|
||||
WpStr8 s4 = wpStr8Lit("Distance lends enchantment to the view");
|
||||
result = result && s4.capacity == 76 && s4.capacity != s4.size;
|
||||
|
||||
Str8 s5 = wapp_str8_lit("Do as I say, not as I do");
|
||||
WpStr8 s5 = wpStr8Lit("Do as I say, not as I do");
|
||||
result = result && s5.capacity == 48 && s5.capacity != s5.size;
|
||||
|
||||
Str8 s6 = wapp_str8_lit("Do as you would be done by");
|
||||
WpStr8 s6 = wpStr8Lit("Do as you would be done by");
|
||||
result = result && s6.capacity == 52 && s6.capacity != s6.size;
|
||||
|
||||
Str8 s7 = wapp_str8_lit("Do unto others as you would have them do to you");
|
||||
WpStr8 s7 = wpStr8Lit("Do unto others as you would have them do to you");
|
||||
result = result && s7.capacity == 94 && s7.capacity != s7.size;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_lit_ro(void) {
|
||||
WpTestFuncResult test_str8_lit_ro(void) {
|
||||
b8 result;
|
||||
|
||||
Str8RO s1 = wapp_str8_lit_ro("Hello world");
|
||||
WpStr8RO s1 = wpStr8LitRo("Hello world");
|
||||
result = s1.capacity == 11 && s1.capacity == s1.size;
|
||||
|
||||
Str8RO s2 = wapp_str8_lit_ro("Different strokes for different folks");
|
||||
WpStr8RO s2 = wpStr8LitRo("Different strokes for different folks");
|
||||
result = result && s2.capacity == 37 && s2.capacity == s2.size;
|
||||
|
||||
Str8RO s3 = wapp_str8_lit_ro("Discretion is the better part of valour");
|
||||
WpStr8RO s3 = wpStr8LitRo("Discretion is the better part of valour");
|
||||
result = result && s3.capacity == 39 && s3.capacity == s3.size;
|
||||
|
||||
Str8RO s4 = wapp_str8_lit_ro("Distance lends enchantment to the view");
|
||||
WpStr8RO s4 = wpStr8LitRo("Distance lends enchantment to the view");
|
||||
result = result && s4.capacity == 38 && s4.capacity == s4.size;
|
||||
|
||||
Str8RO s5 = wapp_str8_lit_ro("Do as I say, not as I do");
|
||||
WpStr8RO s5 = wpStr8LitRo("Do as I say, not as I do");
|
||||
result = result && s5.capacity == 24 && s5.capacity == s5.size;
|
||||
|
||||
Str8RO s6 = wapp_str8_lit_ro("Do as you would be done by");
|
||||
WpStr8RO s6 = wpStr8LitRo("Do as you would be done by");
|
||||
result = result && s6.capacity == 26 && s6.capacity == s6.size;
|
||||
|
||||
Str8RO s7 = wapp_str8_lit_ro("Do unto others as you would have them do to you");
|
||||
WpStr8RO s7 = wpStr8LitRo("Do unto others as you would have them do to you");
|
||||
result = result && s7.capacity == 47 && s7.capacity == s7.size;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_buf(void) {
|
||||
WpTestFuncResult test_str8_buf(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_buf(1024);
|
||||
WpStr8 s1 = wpStr8Buf(1024);
|
||||
result = s1.capacity == 1024 && s1.size == 0;
|
||||
|
||||
Str8 s2 = wapp_str8_buf(2048);
|
||||
WpStr8 s2 = wpStr8Buf(2048);
|
||||
result = result && s2.capacity == 2048 && s2.size == 0;
|
||||
|
||||
Str8 s3 = wapp_str8_buf(4096);
|
||||
WpStr8 s3 = wpStr8Buf(4096);
|
||||
result = result && s3.capacity == 4096 && s3.size == 0;
|
||||
|
||||
Str8 s4 = wapp_str8_buf(8192);
|
||||
WpStr8 s4 = wpStr8Buf(8192);
|
||||
result = result && s4.capacity == 8192 && s4.size == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_alloc_buf(void) {
|
||||
WpTestFuncResult test_str8_alloc_buf(void) {
|
||||
b8 result;
|
||||
Allocator allocator = wapp_mem_arena_allocator_init(KiB(100));
|
||||
if (wapp_mem_allocator_invalid(&allocator)) {
|
||||
return wapp_tester_result(false);
|
||||
WpAllocator allocator = wpMemArenaAllocatorInit(KiB(100));
|
||||
if (wpMemAllocatorInvalid(&allocator)) {
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
u64 capacity = 4096;
|
||||
|
||||
Str8 *s = wapp_str8_alloc_buf(&allocator, capacity);
|
||||
WpStr8 *s = wpStr8AllocBuf(&allocator, capacity);
|
||||
if (!s) {
|
||||
result = false;
|
||||
wapp_mem_arena_allocator_destroy(&allocator);
|
||||
return wapp_tester_result(result);
|
||||
wpMemArenaAllocatorDestroy(&allocator);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
result = s->capacity == capacity;
|
||||
|
||||
const char *cstr = "My name is Abdelrahman";
|
||||
wapp_str8_copy_cstr_capped(s, cstr);
|
||||
wpStr8CopyCstrCapped(s, cstr);
|
||||
|
||||
result = result && s->capacity == capacity && s->size == strlen(cstr) && memcmp(s->buf, cstr, s->size) == 0;
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&allocator);
|
||||
wpMemArenaAllocatorDestroy(&allocator);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_alloc_cstr(void) {
|
||||
WpTestFuncResult test_str8_alloc_cstr(void) {
|
||||
b8 result;
|
||||
Allocator allocator = wapp_mem_arena_allocator_init(KiB(100));
|
||||
if (wapp_mem_allocator_invalid(&allocator)) {
|
||||
return wapp_tester_result(false);
|
||||
WpAllocator allocator = wpMemArenaAllocatorInit(KiB(100));
|
||||
if (wpMemAllocatorInvalid(&allocator)) {
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
const char *str = "Abdelrahman";
|
||||
u64 length = strlen(str);
|
||||
Str8 *s = wapp_str8_alloc_cstr(&allocator, str);
|
||||
WpStr8 *s = wpStr8AllocCstr(&allocator, str);
|
||||
if (!s) {
|
||||
return wapp_tester_result(false);
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
result = s->size == length && memcmp(s->buf, str, length) == 0;
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&allocator);
|
||||
wpMemArenaAllocatorDestroy(&allocator);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_alloc_str8(void) {
|
||||
WpTestFuncResult test_str8_alloc_str8(void) {
|
||||
b8 result;
|
||||
Allocator allocator = wapp_mem_arena_allocator_init(KiB(100));
|
||||
if (wapp_mem_allocator_invalid(&allocator)) {
|
||||
return wapp_tester_result(false);
|
||||
WpAllocator allocator = wpMemArenaAllocatorInit(KiB(100));
|
||||
if (wpMemAllocatorInvalid(&allocator)) {
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
Str8 str = wapp_str8_lit("Abdelrahman");
|
||||
Str8 *s = wapp_str8_alloc_str8(&allocator, &str);
|
||||
WpStr8 str = wpStr8Lit("Abdelrahman");
|
||||
WpStr8 *s = wpStr8AllocStr8(&allocator, &str);
|
||||
if (!s) {
|
||||
return wapp_tester_result(false);
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
result = wapp_str8_equal(s, &str);
|
||||
result = wpStr8Equal(s, &str);
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&allocator);
|
||||
wpMemArenaAllocatorDestroy(&allocator);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_alloc_substr(void) {
|
||||
WpTestFuncResult test_str8_alloc_substr(void) {
|
||||
b8 result;
|
||||
Allocator allocator = wapp_mem_arena_allocator_init(KiB(100));
|
||||
if (wapp_mem_allocator_invalid(&allocator)) {
|
||||
return wapp_tester_result(false);
|
||||
WpAllocator allocator = wpMemArenaAllocatorInit(KiB(100));
|
||||
if (wpMemAllocatorInvalid(&allocator)) {
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
Str8 str = wapp_str8_lit("Abdelrahman");
|
||||
Str8 *s = wapp_str8_alloc_substr(&allocator, &str, 3, 8);
|
||||
WpStr8 str = wpStr8Lit("Abdelrahman");
|
||||
WpStr8 *s = wpStr8AllocSubstr(&allocator, &str, 3, 8);
|
||||
if (!s) {
|
||||
return wapp_tester_result(false);
|
||||
return wpTesterResult(false);
|
||||
}
|
||||
|
||||
result = s->size == 5 && memcmp(s->buf, "elrah", s->size) == 0;
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&allocator);
|
||||
wpMemArenaAllocatorDestroy(&allocator);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_get_index_within_bounds(void) {
|
||||
WpTestFuncResult test_str8_get_index_within_bounds(void) {
|
||||
b8 result;
|
||||
|
||||
Str8RO s1 = wapp_str8_lit_ro("Hello world");
|
||||
result = wapp_str8_get(&s1, 4) == 'o';
|
||||
WpStr8RO s1 = wpStr8LitRo("Hello world");
|
||||
result = wpStr8Get(&s1, 4) == 'o';
|
||||
|
||||
Str8RO s2 = wapp_str8_lit_ro("Different strokes for different folks");
|
||||
result = result && wapp_str8_get(&s2, 0) == 'D';
|
||||
WpStr8RO s2 = wpStr8LitRo("Different strokes for different folks");
|
||||
result = result && wpStr8Get(&s2, 0) == 'D';
|
||||
|
||||
Str8RO s3 = wapp_str8_lit_ro("Discretion is the better part of valour");
|
||||
result = result && wapp_str8_get(&s3, 13) == ' ';
|
||||
WpStr8RO s3 = wpStr8LitRo("Discretion is the better part of valour");
|
||||
result = result && wpStr8Get(&s3, 13) == ' ';
|
||||
|
||||
Str8RO s4 = wapp_str8_lit_ro("Distance lends enchantment to the view");
|
||||
result = result && wapp_str8_get(&s4, 20) == 'n';
|
||||
WpStr8RO s4 = wpStr8LitRo("Distance lends enchantment to the view");
|
||||
result = result && wpStr8Get(&s4, 20) == 'n';
|
||||
|
||||
Str8RO s5 = wapp_str8_lit_ro("Do as I say, not as I do");
|
||||
result = result && wapp_str8_get(&s5, 11) == ',';
|
||||
WpStr8RO s5 = wpStr8LitRo("Do as I say, not as I do");
|
||||
result = result && wpStr8Get(&s5, 11) == ',';
|
||||
|
||||
Str8RO s6 = wapp_str8_lit_ro("Do as you would be done by");
|
||||
result = result && wapp_str8_get(&s6, 25) == 'y';
|
||||
WpStr8RO s6 = wpStr8LitRo("Do as you would be done by");
|
||||
result = result && wpStr8Get(&s6, 25) == 'y';
|
||||
|
||||
Str8RO s7 = wapp_str8_lit_ro("Do unto others as you would have them do to you");
|
||||
result = result && wapp_str8_get(&s7, 16) == 's';
|
||||
WpStr8RO s7 = wpStr8LitRo("Do unto others as you would have them do to you");
|
||||
result = result && wpStr8Get(&s7, 16) == 's';
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_get_index_out_of_bounds(void) {
|
||||
Str8 s1 = wapp_str8_lit("Hello world");
|
||||
b8 result = wapp_str8_get(&s1, 20) == '\0';
|
||||
return wapp_tester_result(result);
|
||||
WpTestFuncResult test_str8_get_index_out_of_bounds(void) {
|
||||
WpStr8 s1 = wpStr8Lit("Hello world");
|
||||
b8 result = wpStr8Get(&s1, 20) == '\0';
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_set(void) {
|
||||
WpTestFuncResult test_str8_set(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("Hello world");
|
||||
wapp_str8_set(&s1, 4, 'f');
|
||||
result = wapp_str8_get(&s1, 4) == 'f';
|
||||
WpStr8 s1 = wpStr8Lit("Hello world");
|
||||
wpStr8Set(&s1, 4, 'f');
|
||||
result = wpStr8Get(&s1, 4) == 'f';
|
||||
|
||||
Str8 s2 = wapp_str8_lit("Different strokes for different folks");
|
||||
wapp_str8_set(&s2, 0, 'A');
|
||||
result = result && wapp_str8_get(&s2, 0) == 'A';
|
||||
WpStr8 s2 = wpStr8Lit("Different strokes for different folks");
|
||||
wpStr8Set(&s2, 0, 'A');
|
||||
result = result && wpStr8Get(&s2, 0) == 'A';
|
||||
|
||||
Str8 s3 = wapp_str8_lit("Discretion is the better part of valour");
|
||||
wapp_str8_set(&s3, 13, 'u');
|
||||
result = result && wapp_str8_get(&s3, 13) == 'u';
|
||||
WpStr8 s3 = wpStr8Lit("Discretion is the better part of valour");
|
||||
wpStr8Set(&s3, 13, 'u');
|
||||
result = result && wpStr8Get(&s3, 13) == 'u';
|
||||
|
||||
Str8 s4 = wapp_str8_lit("Distance lends enchantment to the view");
|
||||
wapp_str8_set(&s4, 20, 'R');
|
||||
result = result && wapp_str8_get(&s4, 20) == 'R';
|
||||
WpStr8 s4 = wpStr8Lit("Distance lends enchantment to the view");
|
||||
wpStr8Set(&s4, 20, 'R');
|
||||
result = result && wpStr8Get(&s4, 20) == 'R';
|
||||
|
||||
Str8 s5 = wapp_str8_lit("Do as I say, not as I do");
|
||||
wapp_str8_set(&s5, 11, '.');
|
||||
result = result && wapp_str8_get(&s5, 11) == '.';
|
||||
WpStr8 s5 = wpStr8Lit("Do as I say, not as I do");
|
||||
wpStr8Set(&s5, 11, '.');
|
||||
result = result && wpStr8Get(&s5, 11) == '.';
|
||||
|
||||
Str8 s6 = wapp_str8_lit("Do as you would be done by");
|
||||
wapp_str8_set(&s6, 25, 'w');
|
||||
result = result && wapp_str8_get(&s6, 25) == 'w';
|
||||
WpStr8 s6 = wpStr8Lit("Do as you would be done by");
|
||||
wpStr8Set(&s6, 25, 'w');
|
||||
result = result && wpStr8Get(&s6, 25) == 'w';
|
||||
|
||||
Str8 s7 = wapp_str8_lit("Do unto others as you would have them do to you");
|
||||
wapp_str8_set(&s7, 16, 'i');
|
||||
result = result && wapp_str8_get(&s7, 16) == 'i';
|
||||
WpStr8 s7 = wpStr8Lit("Do unto others as you would have them do to you");
|
||||
wpStr8Set(&s7, 16, 'i');
|
||||
result = result && wpStr8Get(&s7, 16) == 'i';
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_push_back(void) {
|
||||
WpTestFuncResult test_str8_push_back(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 expected = wapp_str8_lit("Abdelrahman");
|
||||
Str8 buf = wapp_str8_buf(64);
|
||||
wapp_str8_push_back(&buf, 'A');
|
||||
wapp_str8_push_back(&buf, 'b');
|
||||
wapp_str8_push_back(&buf, 'd');
|
||||
wapp_str8_push_back(&buf, 'e');
|
||||
wapp_str8_push_back(&buf, 'l');
|
||||
wapp_str8_push_back(&buf, 'r');
|
||||
wapp_str8_push_back(&buf, 'a');
|
||||
wapp_str8_push_back(&buf, 'h');
|
||||
wapp_str8_push_back(&buf, 'm');
|
||||
wapp_str8_push_back(&buf, 'a');
|
||||
wapp_str8_push_back(&buf, 'n');
|
||||
WpStr8 expected = wpStr8Lit("Abdelrahman");
|
||||
WpStr8 buf = wpStr8Buf(64);
|
||||
wpStr8PushBack(&buf, 'A');
|
||||
wpStr8PushBack(&buf, 'b');
|
||||
wpStr8PushBack(&buf, 'd');
|
||||
wpStr8PushBack(&buf, 'e');
|
||||
wpStr8PushBack(&buf, 'l');
|
||||
wpStr8PushBack(&buf, 'r');
|
||||
wpStr8PushBack(&buf, 'a');
|
||||
wpStr8PushBack(&buf, 'h');
|
||||
wpStr8PushBack(&buf, 'm');
|
||||
wpStr8PushBack(&buf, 'a');
|
||||
wpStr8PushBack(&buf, 'n');
|
||||
|
||||
result = wapp_str8_equal(&buf, &expected);
|
||||
result = wpStr8Equal(&buf, &expected);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_equal(void) {
|
||||
WpTestFuncResult test_str8_equal(void) {
|
||||
b8 result;
|
||||
|
||||
Str8RO s1 = wapp_str8_lit_ro("hello");
|
||||
Str8RO s2 = wapp_str8_lit_ro("hell");
|
||||
Str8RO s3 = wapp_str8_lit_ro("hello");
|
||||
Str8RO s4 = wapp_str8_lit_ro("goodbye");
|
||||
WpStr8RO s1 = wpStr8LitRo("hello");
|
||||
WpStr8RO s2 = wpStr8LitRo("hell");
|
||||
WpStr8RO s3 = wpStr8LitRo("hello");
|
||||
WpStr8RO s4 = wpStr8LitRo("goodbye");
|
||||
|
||||
result = wapp_str8_equal(&s1, &s2) == false;
|
||||
result = result && wapp_str8_equal(&s1, &s3) == (b8)true;
|
||||
result = result && wapp_str8_equal(&s1, &s4) == (b8)false;
|
||||
result = wpStr8Equal(&s1, &s2) == false;
|
||||
result = result && wpStr8Equal(&s1, &s3) == (b8)true;
|
||||
result = result && wpStr8Equal(&s1, &s4) == (b8)false;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_slice(void) {
|
||||
WpTestFuncResult test_str8_slice(void) {
|
||||
b8 result;
|
||||
Str8 s = wapp_str8_lit("Different strokes for different folks");
|
||||
WpStr8 s = wpStr8Lit("Different strokes for different folks");
|
||||
|
||||
Str8RO sub1 = wapp_str8_slice(&s, 3, 9);
|
||||
WpStr8RO sub1 = wpStr8Slice(&s, 3, 9);
|
||||
result = sub1.size == 6 && sub1.capacity == 6;
|
||||
|
||||
Str8RO sub2 = wapp_str8_slice(&s, 18, 21);
|
||||
WpStr8RO sub2 = wpStr8Slice(&s, 18, 21);
|
||||
result = result && sub2.size == 3 && sub2.capacity == 3;
|
||||
|
||||
Str8RO sub3 = wapp_str8_slice(&s, 5, 1);
|
||||
WpStr8RO sub3 = wpStr8Slice(&s, 5, 1);
|
||||
result = result && sub3.size == 0 && sub3.capacity == 0;
|
||||
|
||||
Str8RO sub4 = wapp_str8_slice(&s, 70, 80);
|
||||
WpStr8RO sub4 = wpStr8Slice(&s, 70, 80);
|
||||
result = result && sub4.size == 0 && sub4.capacity == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_alloc_concat(void) {
|
||||
WpTestFuncResult test_str8_alloc_concat(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("Hello world");
|
||||
Str8 suffix1 = wapp_str8_lit(" from me.");
|
||||
Str8 suffix2 = wapp_str8_lit(" This is my code.");
|
||||
Str8 concat1 = wapp_str8_lit("Hello world from me.");
|
||||
Str8 concat2 = wapp_str8_lit("Hello world from me. This is my code.");
|
||||
WpStr8 str = wpStr8Lit("Hello world");
|
||||
WpStr8 suffix1 = wpStr8Lit(" from me.");
|
||||
WpStr8 suffix2 = wpStr8Lit(" This is my code.");
|
||||
WpStr8 concat1 = wpStr8Lit("Hello world from me.");
|
||||
WpStr8 concat2 = wpStr8Lit("Hello world from me. This is my code.");
|
||||
|
||||
Str8 *output;
|
||||
WpStr8 *output;
|
||||
|
||||
output = wapp_str8_alloc_concat(&arena, &str, &suffix1);
|
||||
result = output->size == concat1.size && wapp_str8_equal(output, &concat1);
|
||||
output = wpStr8AllocConcat(&arena, &str, &suffix1);
|
||||
result = output->size == concat1.size && wpStr8Equal(output, &concat1);
|
||||
|
||||
output = wapp_str8_alloc_concat(&arena, output, &suffix2);
|
||||
result = result && output->size == concat2.size && wapp_str8_equal(output, &concat2);
|
||||
output = wpStr8AllocConcat(&arena, output, &suffix2);
|
||||
result = result && output->size == concat2.size && wpStr8Equal(output, &concat2);
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_concat_capped(void) {
|
||||
WpTestFuncResult test_str8_concat_capped(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 str = wapp_str8_lit("Hello world");
|
||||
Str8 suffix1 = wapp_str8_lit(" from me.");
|
||||
Str8 suffix2 = wapp_str8_lit(" This is my code.");
|
||||
Str8 concat1 = wapp_str8_lit("Hello world from me.");
|
||||
Str8 concat2 = wapp_str8_lit("Hello world from me. T");
|
||||
WpStr8 str = wpStr8Lit("Hello world");
|
||||
WpStr8 suffix1 = wpStr8Lit(" from me.");
|
||||
WpStr8 suffix2 = wpStr8Lit(" This is my code.");
|
||||
WpStr8 concat1 = wpStr8Lit("Hello world from me.");
|
||||
WpStr8 concat2 = wpStr8Lit("Hello world from me. T");
|
||||
|
||||
wapp_str8_concat_capped(&str, &suffix1);
|
||||
result = str.size == concat1.size && wapp_str8_equal(&str, &concat1);
|
||||
wpStr8ConcatCapped(&str, &suffix1);
|
||||
result = str.size == concat1.size && wpStr8Equal(&str, &concat1);
|
||||
|
||||
wapp_str8_concat_capped(&str, &suffix2);
|
||||
result = result && str.size == concat2.size && wapp_str8_equal(&str, &concat2);
|
||||
wpStr8ConcatCapped(&str, &suffix2);
|
||||
result = result && str.size == concat2.size && wpStr8Equal(&str, &concat2);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_copy_cstr_capped(void) {
|
||||
WpTestFuncResult test_str8_copy_cstr_capped(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 buf = wapp_str8_buf(32);
|
||||
WpStr8 buf = wpStr8Buf(32);
|
||||
const char *src1 = "Hello world";
|
||||
const char *src2 = "Hello world from the Wizard Apprentice standard library";
|
||||
Str8RO src1_cp = wapp_str8_lit_ro("Hello world");
|
||||
Str8RO src2_cp = wapp_str8_lit_ro("Hello world from the Wizard Appr");
|
||||
WpStr8RO src1_cp = wpStr8LitRo("Hello world");
|
||||
WpStr8RO src2_cp = wpStr8LitRo("Hello world from the Wizard Appr");
|
||||
|
||||
wapp_str8_copy_cstr_capped(&buf, src1);
|
||||
result = buf.size == src1_cp.size && wapp_str8_equal(&buf, &src1_cp);
|
||||
wpStr8CopyCstrCapped(&buf, src1);
|
||||
result = buf.size == src1_cp.size && wpStr8Equal(&buf, &src1_cp);
|
||||
|
||||
wapp_str8_copy_cstr_capped(&buf, src2);
|
||||
result = result && buf.size == src2_cp.size && buf.size == buf.capacity && wapp_str8_equal(&buf, &src2_cp);
|
||||
wpStr8CopyCstrCapped(&buf, src2);
|
||||
result = result && buf.size == src2_cp.size && buf.size == buf.capacity && wpStr8Equal(&buf, &src2_cp);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_copy_str8_capped(void) {
|
||||
WpTestFuncResult test_str8_copy_str8_capped(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 buf = wapp_str8_buf(32);
|
||||
Str8RO src1 = wapp_str8_lit_ro("Hello world");
|
||||
Str8RO src2 = wapp_str8_lit_ro("Hello world from the Wizard Apprentice standard library");
|
||||
Str8RO src2_cp = wapp_str8_lit_ro("Hello world from the Wizard Appr");
|
||||
WpStr8 buf = wpStr8Buf(32);
|
||||
WpStr8RO src1 = wpStr8LitRo("Hello world");
|
||||
WpStr8RO src2 = wpStr8LitRo("Hello world from the Wizard Apprentice standard library");
|
||||
WpStr8RO src2_cp = wpStr8LitRo("Hello world from the Wizard Appr");
|
||||
|
||||
wapp_str8_copy_str8_capped(&buf, &src1);
|
||||
result = buf.size == src1.size && wapp_str8_equal(&buf, &src1);
|
||||
wpStr8CopyStr8Capped(&buf, &src1);
|
||||
result = buf.size == src1.size && wpStr8Equal(&buf, &src1);
|
||||
|
||||
wapp_str8_copy_str8_capped(&buf, &src2);
|
||||
result = result && buf.size < src2.size && buf.size == buf.capacity && wapp_str8_equal(&buf, &src2_cp);
|
||||
wpStr8CopyStr8Capped(&buf, &src2);
|
||||
result = result && buf.size < src2.size && buf.size == buf.capacity && wpStr8Equal(&buf, &src2_cp);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_format(void) {
|
||||
WpTestFuncResult test_str8_format(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 buf = wapp_str8_buf(128);
|
||||
Str8 expected = wapp_str8_lit("My name is Abdelrahman and I am 35 years old");
|
||||
WpStr8 buf = wpStr8Buf(128);
|
||||
WpStr8 expected = wpStr8Lit("My name is Abdelrahman and I am 35 years old");
|
||||
|
||||
wapp_str8_format(&buf, "My name is %s and I am %u years old", "Abdelrahman", 35);
|
||||
wpStr8Format(&buf, "My name is %s and I am %u years old", "Abdelrahman", 35);
|
||||
|
||||
result = wapp_str8_equal(&buf, &expected);
|
||||
result = wpStr8Equal(&buf, &expected);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_find(void) {
|
||||
WpTestFuncResult test_str8_find(void) {
|
||||
b8 result;
|
||||
Str8RO s = wapp_str8_lit("Do as I say, not as I do");
|
||||
WpStr8RO s = wpStr8Lit("Do as I say, not as I do");
|
||||
|
||||
result = wapp_str8_find(&s, wapp_str8_lit_ro("d")) != -1;
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("not")) != -1);
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("as I say")) != -1);
|
||||
result = wpStr8Find(&s, wpStr8LitRo("d")) != -1;
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("not")) != -1);
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("as I say")) != -1);
|
||||
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("f")) == -1);
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("hello")) == -1);
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("not sa I")) == -1);
|
||||
result = result && (wapp_str8_find(&s, wapp_str8_lit_ro("Do unto others as you would have them do to you")) == -1);
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("f")) == -1);
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("hello")) == -1);
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("not sa I")) == -1);
|
||||
result = result && (wpStr8Find(&s, wpStr8LitRo("Do unto others as you would have them do to you")) == -1);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_rfind(void) {
|
||||
WpTestFuncResult test_str8_rfind(void) {
|
||||
b8 result;
|
||||
Str8RO s = wapp_str8_lit("Do as I say, not as I do");
|
||||
WpStr8RO s = wpStr8Lit("Do as I say, not as I do");
|
||||
|
||||
result = wapp_str8_rfind(&s, wapp_str8_lit_ro("d")) != -1;
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("not")) != -1);
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("as I say")) != -1);
|
||||
result = wpStr8Rfind(&s, wpStr8LitRo("d")) != -1;
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("not")) != -1);
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("as I say")) != -1);
|
||||
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("f")) == -1);
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("hello")) == -1);
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("not sa I")) == -1);
|
||||
result = result && (wapp_str8_rfind(&s, wapp_str8_lit_ro("Do unto others as you would have them do to you")) == -1);
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("f")) == -1);
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("hello")) == -1);
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("not sa I")) == -1);
|
||||
result = result && (wpStr8Rfind(&s, wpStr8LitRo("Do unto others as you would have them do to you")) == -1);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_split(void) {
|
||||
WpTestFuncResult test_str8_split(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("hello world from me");
|
||||
Str8 delim1 = wapp_str8_lit(" ");
|
||||
Str8 delim2 = wapp_str8_lit("from");
|
||||
Str8List *list1 = wapp_str8_split(&arena, &str, &delim1);
|
||||
Str8List *list2 = wapp_str8_split(&arena, &str, &delim2);
|
||||
WpStr8 str = wpStr8Lit("hello world from me");
|
||||
WpStr8 delim1 = wpStr8Lit(" ");
|
||||
WpStr8 delim2 = wpStr8Lit("from");
|
||||
WpStr8List *list1 = wpStr8Split(&arena, &str, &delim1);
|
||||
WpStr8List *list2 = wpStr8Split(&arena, &str, &delim2);
|
||||
|
||||
Str8RO splits1[] = {
|
||||
wapp_str8_slice(&str, 0, 5),
|
||||
wapp_str8_slice(&str, 6, 11),
|
||||
wapp_str8_slice(&str, 12, 16),
|
||||
wapp_str8_slice(&str, 17, 19),
|
||||
WpStr8RO splits1[] = {
|
||||
wpStr8Slice(&str, 0, 5),
|
||||
wpStr8Slice(&str, 6, 11),
|
||||
wpStr8Slice(&str, 12, 16),
|
||||
wpStr8Slice(&str, 17, 19),
|
||||
};
|
||||
Str8RO splits2[] = {
|
||||
wapp_str8_slice(&str, 0, 12),
|
||||
wapp_str8_slice(&str, 16, 19),
|
||||
WpStr8RO splits2[] = {
|
||||
wpStr8Slice(&str, 0, 12),
|
||||
wpStr8Slice(&str, 16, 19),
|
||||
};
|
||||
|
||||
u64 index1 = 0;
|
||||
@@ -437,14 +437,14 @@ TestFuncResult test_str8_split(void) {
|
||||
u64 count2 = ARRLEN(splits2);
|
||||
b8 running2 = true;
|
||||
|
||||
result = list1->node_count == count1 && wapp_str8_list_total_size(list1) == str.size - 3;
|
||||
result = result && list2->node_count == count2 && wapp_str8_list_total_size(list2) == str.size - 4;
|
||||
result = list1->node_count == count1 && wpStr8ListTotalSize(list1) == str.size - 3;
|
||||
result = result && list2->node_count == count2 && wpStr8ListTotalSize(list2) == str.size - 4;
|
||||
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running1) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list1, index1);
|
||||
result = result && wapp_str8_equal(node, &(splits1[index1]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list1, index1);
|
||||
result = result && wpStr8Equal(node, &(splits1[index1]));
|
||||
|
||||
++index1;
|
||||
running1 = index1 < count1;
|
||||
@@ -453,72 +453,72 @@ TestFuncResult test_str8_split(void) {
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running2) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list2, index2);
|
||||
result = result && wapp_str8_equal(node, &(splits2[index2]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list2, index2);
|
||||
result = result && wpStr8Equal(node, &(splits2[index2]));
|
||||
|
||||
++index2;
|
||||
running2 = index2 < count2;
|
||||
}
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_split_with_max(void) {
|
||||
WpTestFuncResult test_str8_split_with_max(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("hello world from me");
|
||||
Str8 delim = wapp_str8_lit(" ");
|
||||
Str8List *list = wapp_str8_split_with_max(&arena, &str, &delim, 2);
|
||||
WpStr8 str = wpStr8Lit("hello world from me");
|
||||
WpStr8 delim = wpStr8Lit(" ");
|
||||
WpStr8List *list = wpStr8SplitWithMax(&arena, &str, &delim, 2);
|
||||
|
||||
Str8RO splits[] = {
|
||||
wapp_str8_slice(&str, 0, 5),
|
||||
wapp_str8_slice(&str, 6, 11),
|
||||
wapp_str8_slice(&str, 12, 19),
|
||||
WpStr8RO splits[] = {
|
||||
wpStr8Slice(&str, 0, 5),
|
||||
wpStr8Slice(&str, 6, 11),
|
||||
wpStr8Slice(&str, 12, 19),
|
||||
};
|
||||
|
||||
u64 index = 0;
|
||||
u64 count = ARRLEN(splits);
|
||||
b8 running = true;
|
||||
|
||||
result = list->node_count == count && wapp_str8_list_total_size(list) == str.size - 2;
|
||||
result = list->node_count == count && wpStr8ListTotalSize(list) == str.size - 2;
|
||||
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list, index);
|
||||
result = result && wapp_str8_equal(node, &(splits[index]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list, index);
|
||||
result = result && wpStr8Equal(node, &(splits[index]));
|
||||
|
||||
++index;
|
||||
running = index < count;
|
||||
}
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_rsplit(void) {
|
||||
WpTestFuncResult test_str8_rsplit(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("hello world from me");
|
||||
Str8 delim1 = wapp_str8_lit(" ");
|
||||
Str8 delim2 = wapp_str8_lit("from");
|
||||
Str8List *list1 = wapp_str8_rsplit(&arena, &str, &delim1);
|
||||
Str8List *list2 = wapp_str8_rsplit(&arena, &str, &delim2);
|
||||
WpStr8 str = wpStr8Lit("hello world from me");
|
||||
WpStr8 delim1 = wpStr8Lit(" ");
|
||||
WpStr8 delim2 = wpStr8Lit("from");
|
||||
WpStr8List *list1 = wpStr8Rsplit(&arena, &str, &delim1);
|
||||
WpStr8List *list2 = wpStr8Rsplit(&arena, &str, &delim2);
|
||||
|
||||
Str8RO splits1[] = {
|
||||
wapp_str8_slice(&str, 0, 5),
|
||||
wapp_str8_slice(&str, 6, 11),
|
||||
wapp_str8_slice(&str, 12, 16),
|
||||
wapp_str8_slice(&str, 17, 19),
|
||||
WpStr8RO splits1[] = {
|
||||
wpStr8Slice(&str, 0, 5),
|
||||
wpStr8Slice(&str, 6, 11),
|
||||
wpStr8Slice(&str, 12, 16),
|
||||
wpStr8Slice(&str, 17, 19),
|
||||
};
|
||||
Str8RO splits2[] = {
|
||||
wapp_str8_slice(&str, 0, 12),
|
||||
wapp_str8_slice(&str, 16, 19),
|
||||
WpStr8RO splits2[] = {
|
||||
wpStr8Slice(&str, 0, 12),
|
||||
wpStr8Slice(&str, 16, 19),
|
||||
};
|
||||
|
||||
u64 index1 = 0;
|
||||
@@ -529,14 +529,14 @@ TestFuncResult test_str8_rsplit(void) {
|
||||
u64 count2 = ARRLEN(splits2);
|
||||
b8 running2 = true;
|
||||
|
||||
result = list1->node_count == count1 && wapp_str8_list_total_size(list1) == str.size - 3;
|
||||
result = result && list2->node_count == count2 && wapp_str8_list_total_size(list2) == str.size - 4;
|
||||
result = list1->node_count == count1 && wpStr8ListTotalSize(list1) == str.size - 3;
|
||||
result = result && list2->node_count == count2 && wpStr8ListTotalSize(list2) == str.size - 4;
|
||||
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running1) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list1, index1);
|
||||
result = result && wapp_str8_equal(node, &(splits1[index1]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list1, index1);
|
||||
result = result && wpStr8Equal(node, &(splits1[index1]));
|
||||
|
||||
++index1;
|
||||
running1 = index1 < count1;
|
||||
@@ -545,83 +545,83 @@ TestFuncResult test_str8_rsplit(void) {
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running2) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list2, index2);
|
||||
result = result && wapp_str8_equal(node, &(splits2[index2]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list2, index2);
|
||||
result = result && wpStr8Equal(node, &(splits2[index2]));
|
||||
|
||||
++index2;
|
||||
running2 = index2 < count2;
|
||||
}
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_rsplit_with_max(void) {
|
||||
WpTestFuncResult test_str8_rsplit_with_max(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("hello world from me");
|
||||
Str8 delim = wapp_str8_lit(" ");
|
||||
Str8List *list = wapp_str8_rsplit_with_max(&arena, &str, &delim, 2);
|
||||
WpStr8 str = wpStr8Lit("hello world from me");
|
||||
WpStr8 delim = wpStr8Lit(" ");
|
||||
WpStr8List *list = wpStr8RsplitWithMax(&arena, &str, &delim, 2);
|
||||
|
||||
Str8RO splits[] = {
|
||||
wapp_str8_slice(&str, 0, 11),
|
||||
wapp_str8_slice(&str, 12, 16),
|
||||
wapp_str8_slice(&str, 17, 19),
|
||||
WpStr8RO splits[] = {
|
||||
wpStr8Slice(&str, 0, 11),
|
||||
wpStr8Slice(&str, 12, 16),
|
||||
wpStr8Slice(&str, 17, 19),
|
||||
};
|
||||
|
||||
u64 index = 0;
|
||||
u64 count = ARRLEN(splits);
|
||||
b8 running = true;
|
||||
|
||||
result = list->node_count == count && wapp_str8_list_total_size(list) == str.size - 2;
|
||||
result = list->node_count == count && wpStr8ListTotalSize(list) == str.size - 2;
|
||||
|
||||
// NOTE (Abdelrahman): Uses a while loop instead of a for loop to get rid of
|
||||
// MSVC Spectre mitigation warnings
|
||||
while (running) {
|
||||
Str8 *node = wapp_dbl_list_get(Str8, list, index);
|
||||
result = result && wapp_str8_equal(node, &(splits[index]));
|
||||
WpStr8 *node = wpDblListGet(WpStr8, list, index);
|
||||
result = result && wpStr8Equal(node, &(splits[index]));
|
||||
|
||||
++index;
|
||||
running = index < count;
|
||||
}
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_join(void) {
|
||||
WpTestFuncResult test_str8_join(void) {
|
||||
b8 result;
|
||||
Allocator arena = wapp_mem_arena_allocator_init(KiB(100));
|
||||
WpAllocator arena = wpMemArenaAllocatorInit(KiB(100));
|
||||
|
||||
Str8 str = wapp_str8_lit("hello world from me");
|
||||
Str8 delim1 = wapp_str8_lit(" ");
|
||||
Str8 delim2 = wapp_str8_lit("from");
|
||||
Str8List *list1 = wapp_str8_rsplit(&arena, &str, &delim1);
|
||||
Str8List *list2 = wapp_str8_rsplit(&arena, &str, &delim2);
|
||||
Str8 *join1 = wapp_str8_join(&arena, list1, &delim1);
|
||||
Str8 *join2 = wapp_str8_join(&arena, list2, &delim2);
|
||||
WpStr8 str = wpStr8Lit("hello world from me");
|
||||
WpStr8 delim1 = wpStr8Lit(" ");
|
||||
WpStr8 delim2 = wpStr8Lit("from");
|
||||
WpStr8List *list1 = wpStr8Rsplit(&arena, &str, &delim1);
|
||||
WpStr8List *list2 = wpStr8Rsplit(&arena, &str, &delim2);
|
||||
WpStr8 *join1 = wpStr8Join(&arena, list1, &delim1);
|
||||
WpStr8 *join2 = wpStr8Join(&arena, list2, &delim2);
|
||||
|
||||
result = join1->size == str.size && wapp_str8_equal(join1, &str);
|
||||
result = result && join2->size == str.size && wapp_str8_equal(join2, &str);
|
||||
result = join1->size == str.size && wpStr8Equal(join1, &str);
|
||||
result = result && join2->size == str.size && wpStr8Equal(join2, &str);
|
||||
|
||||
wapp_mem_arena_allocator_destroy(&arena);
|
||||
wpMemArenaAllocatorDestroy(&arena);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_from_bytes(void) {
|
||||
WpTestFuncResult test_str8_from_bytes(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 str = wapp_str8_buf(1024);
|
||||
Str8 expected = wapp_str8_lit_ro("WAPP");
|
||||
U8Array bytes = wapp_array(u8, 'W', 'A', 'P', 'P');
|
||||
wapp_str8_from_bytes(&str, bytes);
|
||||
WpStr8 str = wpStr8Buf(1024);
|
||||
WpStr8 expected = wpStr8LitRo("WAPP");
|
||||
WpU8Array bytes = wpArray(u8, 'W', 'A', 'P', 'P');
|
||||
wpStr8FromBytes(&str, bytes);
|
||||
|
||||
result = str.size == wapp_array_count(bytes) * wapp_array_item_size(bytes);
|
||||
result = result && wapp_str8_equal(&str, &expected);
|
||||
result = str.size == wpArrayCount(bytes) * wpArrayItemSize(bytes);
|
||||
result = result && wpStr8Equal(&str, &expected);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
+26
-26
@@ -3,31 +3,31 @@
|
||||
|
||||
#include "wapp.h"
|
||||
|
||||
TestFuncResult test_str8_lit(void);
|
||||
TestFuncResult test_str8_lit_ro(void);
|
||||
TestFuncResult test_str8_buf(void);
|
||||
TestFuncResult test_str8_alloc_buf(void);
|
||||
TestFuncResult test_str8_alloc_cstr(void);
|
||||
TestFuncResult test_str8_alloc_str8(void);
|
||||
TestFuncResult test_str8_alloc_substr(void);
|
||||
TestFuncResult test_str8_alloc_concat(void);
|
||||
TestFuncResult test_str8_get_index_within_bounds(void);
|
||||
TestFuncResult test_str8_get_index_out_of_bounds(void);
|
||||
TestFuncResult test_str8_set(void);
|
||||
TestFuncResult test_str8_push_back(void);
|
||||
TestFuncResult test_str8_equal(void);
|
||||
TestFuncResult test_str8_slice(void);
|
||||
TestFuncResult test_str8_concat_capped(void);
|
||||
TestFuncResult test_str8_copy_cstr_capped(void);
|
||||
TestFuncResult test_str8_copy_str8_capped(void);
|
||||
TestFuncResult test_str8_format(void);
|
||||
TestFuncResult test_str8_find(void);
|
||||
TestFuncResult test_str8_rfind(void);
|
||||
TestFuncResult test_str8_split(void);
|
||||
TestFuncResult test_str8_split_with_max(void);
|
||||
TestFuncResult test_str8_rsplit(void);
|
||||
TestFuncResult test_str8_rsplit_with_max(void);
|
||||
TestFuncResult test_str8_join(void);
|
||||
TestFuncResult test_str8_from_bytes(void);
|
||||
WpTestFuncResult test_str8_lit(void);
|
||||
WpTestFuncResult test_str8_lit_ro(void);
|
||||
WpTestFuncResult test_str8_buf(void);
|
||||
WpTestFuncResult test_str8_alloc_buf(void);
|
||||
WpTestFuncResult test_str8_alloc_cstr(void);
|
||||
WpTestFuncResult test_str8_alloc_str8(void);
|
||||
WpTestFuncResult test_str8_alloc_substr(void);
|
||||
WpTestFuncResult test_str8_alloc_concat(void);
|
||||
WpTestFuncResult test_str8_get_index_within_bounds(void);
|
||||
WpTestFuncResult test_str8_get_index_out_of_bounds(void);
|
||||
WpTestFuncResult test_str8_set(void);
|
||||
WpTestFuncResult test_str8_push_back(void);
|
||||
WpTestFuncResult test_str8_equal(void);
|
||||
WpTestFuncResult test_str8_slice(void);
|
||||
WpTestFuncResult test_str8_concat_capped(void);
|
||||
WpTestFuncResult test_str8_copy_cstr_capped(void);
|
||||
WpTestFuncResult test_str8_copy_str8_capped(void);
|
||||
WpTestFuncResult test_str8_format(void);
|
||||
WpTestFuncResult test_str8_find(void);
|
||||
WpTestFuncResult test_str8_rfind(void);
|
||||
WpTestFuncResult test_str8_split(void);
|
||||
WpTestFuncResult test_str8_split_with_max(void);
|
||||
WpTestFuncResult test_str8_rsplit(void);
|
||||
WpTestFuncResult test_str8_rsplit_with_max(void);
|
||||
WpTestFuncResult test_str8_join(void);
|
||||
WpTestFuncResult test_str8_from_bytes(void);
|
||||
|
||||
#endif // !TEST_STR8_H
|
||||
|
||||
+147
-147
@@ -1,230 +1,230 @@
|
||||
#include "test_str8_list.h"
|
||||
#include "wapp.h"
|
||||
|
||||
TestFuncResult test_str8_list_get(void) {
|
||||
WpTestFuncResult test_str8_list_get(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
Str8 s4 = wapp_str8_lit("4");
|
||||
Str8 s5 = wapp_str8_lit("5");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
WpStr8 s4 = wpStr8Lit("4");
|
||||
WpStr8 s5 = wpStr8Lit("5");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s1);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s2);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s3);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s4);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s5);
|
||||
wpDblListPushBack(WpStr8, &list, &s1);
|
||||
wpDblListPushBack(WpStr8, &list, &s2);
|
||||
wpDblListPushBack(WpStr8, &list, &s3);
|
||||
wpDblListPushBack(WpStr8, &list, &s4);
|
||||
wpDblListPushBack(WpStr8, &list, &s5);
|
||||
|
||||
Str8 *node = wapp_dbl_list_get(Str8, &list, 0);
|
||||
result = node == &s1 && wapp_str8_equal(node, &s1);
|
||||
WpStr8 *node = wpDblListGet(WpStr8, &list, 0);
|
||||
result = node == &s1 && wpStr8Equal(node, &s1);
|
||||
|
||||
node = wapp_dbl_list_get(Str8, &list, 1);
|
||||
result = result && node == &s2 && wapp_str8_equal(node, &s2);
|
||||
node = wpDblListGet(WpStr8, &list, 1);
|
||||
result = result && node == &s2 && wpStr8Equal(node, &s2);
|
||||
|
||||
node = wapp_dbl_list_get(Str8, &list, 2);
|
||||
result = result && node == &s3 && wapp_str8_equal(node, &s3);
|
||||
node = wpDblListGet(WpStr8, &list, 2);
|
||||
result = result && node == &s3 && wpStr8Equal(node, &s3);
|
||||
|
||||
node = wapp_dbl_list_get(Str8, &list, 3);
|
||||
result = result && node == &s4 && wapp_str8_equal(node, &s4);
|
||||
node = wpDblListGet(WpStr8, &list, 3);
|
||||
result = result && node == &s4 && wpStr8Equal(node, &s4);
|
||||
|
||||
node = wapp_dbl_list_get(Str8, &list, 4);
|
||||
result = result && node == &s5 && wapp_str8_equal(node, &s5);
|
||||
node = wpDblListGet(WpStr8, &list, 4);
|
||||
result = result && node == &s5 && wpStr8Equal(node, &s5);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_push_front(void) {
|
||||
WpTestFuncResult test_str8_list_push_front(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_front(Str8, &list, &s1);
|
||||
result = list.first == list.last && list.first->item == &s1 && wapp_str8_list_total_size(&list) == 1 && list.node_count == 1;
|
||||
wpDblListPushFront(WpStr8, &list, &s1);
|
||||
result = list.first == list.last && list.first->item == &s1 && wpStr8ListTotalSize(&list) == 1 && list.node_count == 1;
|
||||
|
||||
wapp_dbl_list_push_front(Str8, &list, &s2);
|
||||
result = result && list.first->item == &s2 && wapp_str8_list_total_size(&list) == 2 && list.node_count == 2;
|
||||
wpDblListPushFront(WpStr8, &list, &s2);
|
||||
result = result && list.first->item == &s2 && wpStr8ListTotalSize(&list) == 2 && list.node_count == 2;
|
||||
|
||||
wapp_dbl_list_push_front(Str8, &list, &s3);
|
||||
result = result && list.first->item == &s3 && wapp_str8_list_total_size(&list) == 3 && list.node_count == 3;
|
||||
wpDblListPushFront(WpStr8, &list, &s3);
|
||||
result = result && list.first->item == &s3 && wpStr8ListTotalSize(&list) == 3 && list.node_count == 3;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_push_back(void) {
|
||||
WpTestFuncResult test_str8_list_push_back(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s1);
|
||||
result = list.first == list.last && list.last->item == &s1 && wapp_str8_list_total_size(&list) == 1 && list.node_count == 1;
|
||||
wpDblListPushBack(WpStr8, &list, &s1);
|
||||
result = list.first == list.last && list.last->item == &s1 && wpStr8ListTotalSize(&list) == 1 && list.node_count == 1;
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s2);
|
||||
result = result && list.last->item == &s2 && wapp_str8_list_total_size(&list) == 2 && list.node_count == 2;
|
||||
wpDblListPushBack(WpStr8, &list, &s2);
|
||||
result = result && list.last->item == &s2 && wpStr8ListTotalSize(&list) == 2 && list.node_count == 2;
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s3);
|
||||
result = result && list.last->item == &s3 && wapp_str8_list_total_size(&list) == 3 && list.node_count == 3;
|
||||
wpDblListPushBack(WpStr8, &list, &s3);
|
||||
result = result && list.last->item == &s3 && wpStr8ListTotalSize(&list) == 3 && list.node_count == 3;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_insert(void) {
|
||||
WpTestFuncResult test_str8_list_insert(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
Str8 s4 = wapp_str8_lit("4");
|
||||
Str8 s5 = wapp_str8_lit("5");
|
||||
Str8 s6 = wapp_str8_lit("6");
|
||||
Str8 s7 = wapp_str8_lit("7");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
WpStr8 s4 = wpStr8Lit("4");
|
||||
WpStr8 s5 = wpStr8Lit("5");
|
||||
WpStr8 s6 = wpStr8Lit("6");
|
||||
WpStr8 s7 = wpStr8Lit("7");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s1);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s2);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s3);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s4);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s5);
|
||||
wpDblListPushBack(WpStr8, &list, &s1);
|
||||
wpDblListPushBack(WpStr8, &list, &s2);
|
||||
wpDblListPushBack(WpStr8, &list, &s3);
|
||||
wpDblListPushBack(WpStr8, &list, &s4);
|
||||
wpDblListPushBack(WpStr8, &list, &s5);
|
||||
|
||||
Str8 *node;
|
||||
wapp_dbl_list_insert(Str8, &list, &s6, 2);
|
||||
node = wapp_dbl_list_get(Str8, &list, 2);
|
||||
result = node != NULL && node == &s6 && wapp_str8_list_total_size(&list) == 6 && list.node_count == 6;
|
||||
wapp_dbl_list_insert(Str8, &list, &s7, 5);
|
||||
node = wapp_dbl_list_get(Str8, &list, 5);
|
||||
result = result && node != NULL && node == &s7 && wapp_str8_list_total_size(&list) == 7 && list.node_count == 7;
|
||||
WpStr8 *node;
|
||||
wpDblListInsert(WpStr8, &list, &s6, 2);
|
||||
node = wpDblListGet(WpStr8, &list, 2);
|
||||
result = node != NULL && node == &s6 && wpStr8ListTotalSize(&list) == 6 && list.node_count == 6;
|
||||
wpDblListInsert(WpStr8, &list, &s7, 5);
|
||||
node = wpDblListGet(WpStr8, &list, 5);
|
||||
result = result && node != NULL && node == &s7 && wpStr8ListTotalSize(&list) == 7 && list.node_count == 7;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_pop_front(void) {
|
||||
WpTestFuncResult test_str8_list_pop_front(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
Str8 s4 = wapp_str8_lit("4");
|
||||
Str8 s5 = wapp_str8_lit("5");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
WpStr8 s4 = wpStr8Lit("4");
|
||||
WpStr8 s5 = wpStr8Lit("5");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s1);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s2);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s3);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s4);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s5);
|
||||
wpDblListPushBack(WpStr8, &list, &s1);
|
||||
wpDblListPushBack(WpStr8, &list, &s2);
|
||||
wpDblListPushBack(WpStr8, &list, &s3);
|
||||
wpDblListPushBack(WpStr8, &list, &s4);
|
||||
wpDblListPushBack(WpStr8, &list, &s5);
|
||||
|
||||
Str8 *node = wapp_dbl_list_pop_front(Str8, &list);
|
||||
result = node == &s1 && wapp_str8_equal(node, &s1) && wapp_str8_list_total_size(&list) == 4 && list.node_count == 4;
|
||||
WpStr8 *node = wpDblListPopFront(WpStr8, &list);
|
||||
result = node == &s1 && wpStr8Equal(node, &s1) && wpStr8ListTotalSize(&list) == 4 && list.node_count == 4;
|
||||
|
||||
node = wapp_dbl_list_pop_front(Str8, &list);
|
||||
result = result && node == &s2 && wapp_str8_equal(node, &s2) && wapp_str8_list_total_size(&list) == 3 && list.node_count == 3;
|
||||
node = wpDblListPopFront(WpStr8, &list);
|
||||
result = result && node == &s2 && wpStr8Equal(node, &s2) && wpStr8ListTotalSize(&list) == 3 && list.node_count == 3;
|
||||
|
||||
node = wapp_dbl_list_pop_front(Str8, &list);
|
||||
result = result && node == &s3 && wapp_str8_equal(node, &s3) && wapp_str8_list_total_size(&list) == 2 && list.node_count == 2;
|
||||
node = wpDblListPopFront(WpStr8, &list);
|
||||
result = result && node == &s3 && wpStr8Equal(node, &s3) && wpStr8ListTotalSize(&list) == 2 && list.node_count == 2;
|
||||
|
||||
node = wapp_dbl_list_pop_front(Str8, &list);
|
||||
result = result && node == &s4 && wapp_str8_equal(node, &s4) && wapp_str8_list_total_size(&list) == 1 && list.node_count == 1;
|
||||
node = wpDblListPopFront(WpStr8, &list);
|
||||
result = result && node == &s4 && wpStr8Equal(node, &s4) && wpStr8ListTotalSize(&list) == 1 && list.node_count == 1;
|
||||
|
||||
node = wapp_dbl_list_pop_front(Str8, &list);
|
||||
result = result && node == &s5 && wapp_str8_equal(node, &s5) && wapp_str8_list_total_size(&list) == 0 && list.node_count == 0;
|
||||
node = wpDblListPopFront(WpStr8, &list);
|
||||
result = result && node == &s5 && wpStr8Equal(node, &s5) && wpStr8ListTotalSize(&list) == 0 && list.node_count == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_pop_back(void) {
|
||||
WpTestFuncResult test_str8_list_pop_back(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
Str8 s4 = wapp_str8_lit("4");
|
||||
Str8 s5 = wapp_str8_lit("5");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
WpStr8 s4 = wpStr8Lit("4");
|
||||
WpStr8 s5 = wpStr8Lit("5");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_front(Str8, &list, &s1);
|
||||
wapp_dbl_list_push_front(Str8, &list, &s2);
|
||||
wapp_dbl_list_push_front(Str8, &list, &s3);
|
||||
wapp_dbl_list_push_front(Str8, &list, &s4);
|
||||
wapp_dbl_list_push_front(Str8, &list, &s5);
|
||||
wpDblListPushFront(WpStr8, &list, &s1);
|
||||
wpDblListPushFront(WpStr8, &list, &s2);
|
||||
wpDblListPushFront(WpStr8, &list, &s3);
|
||||
wpDblListPushFront(WpStr8, &list, &s4);
|
||||
wpDblListPushFront(WpStr8, &list, &s5);
|
||||
|
||||
Str8 *node = wapp_dbl_list_pop_back(Str8, &list);
|
||||
result = node == &s1 && wapp_str8_equal(node, &s1) && wapp_str8_list_total_size(&list) == 4 && list.node_count == 4;
|
||||
WpStr8 *node = wpDblListPopBack(WpStr8, &list);
|
||||
result = node == &s1 && wpStr8Equal(node, &s1) && wpStr8ListTotalSize(&list) == 4 && list.node_count == 4;
|
||||
|
||||
node = wapp_dbl_list_pop_back(Str8, &list);
|
||||
result = result && node == &s2 && wapp_str8_equal(node, &s2) && wapp_str8_list_total_size(&list) == 3 && list.node_count == 3;
|
||||
node = wpDblListPopBack(WpStr8, &list);
|
||||
result = result && node == &s2 && wpStr8Equal(node, &s2) && wpStr8ListTotalSize(&list) == 3 && list.node_count == 3;
|
||||
|
||||
node = wapp_dbl_list_pop_back(Str8, &list);
|
||||
result = result && node == &s3 && wapp_str8_equal(node, &s3) && wapp_str8_list_total_size(&list) == 2 && list.node_count == 2;
|
||||
node = wpDblListPopBack(WpStr8, &list);
|
||||
result = result && node == &s3 && wpStr8Equal(node, &s3) && wpStr8ListTotalSize(&list) == 2 && list.node_count == 2;
|
||||
|
||||
node = wapp_dbl_list_pop_back(Str8, &list);
|
||||
result = result && node == &s4 && wapp_str8_equal(node, &s4) && wapp_str8_list_total_size(&list) == 1 && list.node_count == 1;
|
||||
node = wpDblListPopBack(WpStr8, &list);
|
||||
result = result && node == &s4 && wpStr8Equal(node, &s4) && wpStr8ListTotalSize(&list) == 1 && list.node_count == 1;
|
||||
|
||||
node = wapp_dbl_list_pop_back(Str8, &list);
|
||||
result = result && node == &s5 && wapp_str8_equal(node, &s5) && wapp_str8_list_total_size(&list) == 0 && list.node_count == 0;
|
||||
node = wpDblListPopBack(WpStr8, &list);
|
||||
result = result && node == &s5 && wpStr8Equal(node, &s5) && wpStr8ListTotalSize(&list) == 0 && list.node_count == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_remove(void) {
|
||||
WpTestFuncResult test_str8_list_remove(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
Str8 s4 = wapp_str8_lit("4");
|
||||
Str8 s5 = wapp_str8_lit("5");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
WpStr8 s4 = wpStr8Lit("4");
|
||||
WpStr8 s5 = wpStr8Lit("5");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s1);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s2);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s3);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s4);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s5);
|
||||
wpDblListPushBack(WpStr8, &list, &s1);
|
||||
wpDblListPushBack(WpStr8, &list, &s2);
|
||||
wpDblListPushBack(WpStr8, &list, &s3);
|
||||
wpDblListPushBack(WpStr8, &list, &s4);
|
||||
wpDblListPushBack(WpStr8, &list, &s5);
|
||||
|
||||
Str8 *node = wapp_dbl_list_remove(Str8, &list, 0);
|
||||
result = node == &s1 && wapp_str8_equal(node, &s1) && wapp_str8_list_total_size(&list) == 4 && list.node_count == 4;
|
||||
WpStr8 *node = wpDblListRemove(WpStr8, &list, 0);
|
||||
result = node == &s1 && wpStr8Equal(node, &s1) && wpStr8ListTotalSize(&list) == 4 && list.node_count == 4;
|
||||
|
||||
node = wapp_dbl_list_remove(Str8, &list, 0);
|
||||
result = result && node == &s2 && wapp_str8_equal(node, &s2) && wapp_str8_list_total_size(&list) == 3 && list.node_count == 3;
|
||||
node = wpDblListRemove(WpStr8, &list, 0);
|
||||
result = result && node == &s2 && wpStr8Equal(node, &s2) && wpStr8ListTotalSize(&list) == 3 && list.node_count == 3;
|
||||
|
||||
node = wapp_dbl_list_remove(Str8, &list, 0);
|
||||
result = result && node == &s3 && wapp_str8_equal(node, &s3) && wapp_str8_list_total_size(&list) == 2 && list.node_count == 2;
|
||||
node = wpDblListRemove(WpStr8, &list, 0);
|
||||
result = result && node == &s3 && wpStr8Equal(node, &s3) && wpStr8ListTotalSize(&list) == 2 && list.node_count == 2;
|
||||
|
||||
node = wapp_dbl_list_remove(Str8, &list, 0);
|
||||
result = result && node == &s4 && wapp_str8_equal(node, &s4) && wapp_str8_list_total_size(&list) == 1 && list.node_count == 1;
|
||||
node = wpDblListRemove(WpStr8, &list, 0);
|
||||
result = result && node == &s4 && wpStr8Equal(node, &s4) && wpStr8ListTotalSize(&list) == 1 && list.node_count == 1;
|
||||
|
||||
node = wapp_dbl_list_remove(Str8, &list, 0);
|
||||
result = result && node == &s5 && wapp_str8_equal(node, &s5) && wapp_str8_list_total_size(&list) == 0 && list.node_count == 0;
|
||||
node = wpDblListRemove(WpStr8, &list, 0);
|
||||
result = result && node == &s5 && wpStr8Equal(node, &s5) && wpStr8ListTotalSize(&list) == 0 && list.node_count == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_empty(void) {
|
||||
WpTestFuncResult test_str8_list_empty(void) {
|
||||
b8 result;
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
wapp_dbl_list_push_back(Str8, &list, &wapp_str8_lit("Hello"));
|
||||
wapp_dbl_list_push_back(Str8, &list, &wapp_str8_lit("from"));
|
||||
wapp_dbl_list_push_back(Str8, &list, &wapp_str8_lit("wizapp"));
|
||||
wapp_dbl_list_push_back(Str8, &list, &wapp_str8_lit("stdlib"));
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
wpDblListPushBack(WpStr8, &list, &wpStr8Lit("Hello"));
|
||||
wpDblListPushBack(WpStr8, &list, &wpStr8Lit("from"));
|
||||
wpDblListPushBack(WpStr8, &list, &wpStr8Lit("wizapp"));
|
||||
wpDblListPushBack(WpStr8, &list, &wpStr8Lit("stdlib"));
|
||||
|
||||
wapp_dbl_list_empty(Str8, &list);
|
||||
wpDblListEmpty(WpStr8, &list);
|
||||
|
||||
result = list.first == NULL && list.last == NULL && list.node_count == 0 && wapp_str8_list_total_size(&list) == 0;
|
||||
result = list.first == NULL && list.last == NULL && list.node_count == 0 && wpStr8ListTotalSize(&list) == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
+151
-151
@@ -1,238 +1,238 @@
|
||||
#include "test_str8_list.h"
|
||||
#include "wapp.h"
|
||||
|
||||
TestFuncResult test_str8_list_get(void) {
|
||||
WpTestFuncResult test_str8_list_get(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
Str8 s4 = wapp_str8_lit("4");
|
||||
Str8 s5 = wapp_str8_lit("5");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
WpStr8 s4 = wpStr8Lit("4");
|
||||
WpStr8 s5 = wpStr8Lit("5");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s1);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s2);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s3);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s4);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s5);
|
||||
wpDblListPushBack(WpStr8, &list, &s1);
|
||||
wpDblListPushBack(WpStr8, &list, &s2);
|
||||
wpDblListPushBack(WpStr8, &list, &s3);
|
||||
wpDblListPushBack(WpStr8, &list, &s4);
|
||||
wpDblListPushBack(WpStr8, &list, &s5);
|
||||
|
||||
Str8 *node = wapp_dbl_list_get(Str8, &list, 0);
|
||||
result = node == &s1 && wapp_str8_equal(node, &s1);
|
||||
WpStr8 *node = wpDblListGet(WpStr8, &list, 0);
|
||||
result = node == &s1 && wpStr8Equal(node, &s1);
|
||||
|
||||
node = wapp_dbl_list_get(Str8, &list, 1);
|
||||
result = result && node == &s2 && wapp_str8_equal(node, &s2);
|
||||
node = wpDblListGet(WpStr8, &list, 1);
|
||||
result = result && node == &s2 && wpStr8Equal(node, &s2);
|
||||
|
||||
node = wapp_dbl_list_get(Str8, &list, 2);
|
||||
result = result && node == &s3 && wapp_str8_equal(node, &s3);
|
||||
node = wpDblListGet(WpStr8, &list, 2);
|
||||
result = result && node == &s3 && wpStr8Equal(node, &s3);
|
||||
|
||||
node = wapp_dbl_list_get(Str8, &list, 3);
|
||||
result = result && node == &s4 && wapp_str8_equal(node, &s4);
|
||||
node = wpDblListGet(WpStr8, &list, 3);
|
||||
result = result && node == &s4 && wpStr8Equal(node, &s4);
|
||||
|
||||
node = wapp_dbl_list_get(Str8, &list, 4);
|
||||
result = result && node == &s5 && wapp_str8_equal(node, &s5);
|
||||
node = wpDblListGet(WpStr8, &list, 4);
|
||||
result = result && node == &s5 && wpStr8Equal(node, &s5);
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_push_front(void) {
|
||||
WpTestFuncResult test_str8_list_push_front(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_front(Str8, &list, &s1);
|
||||
result = list.first == list.last && list.first->item == &s1 && wapp_str8_list_total_size(&list) == 1 && list.node_count == 1;
|
||||
wpDblListPushFront(WpStr8, &list, &s1);
|
||||
result = list.first == list.last && list.first->item == &s1 && wpStr8ListTotalSize(&list) == 1 && list.node_count == 1;
|
||||
|
||||
wapp_dbl_list_push_front(Str8, &list, &s2);
|
||||
result = result && list.first->item == &s2 && wapp_str8_list_total_size(&list) == 2 && list.node_count == 2;
|
||||
wpDblListPushFront(WpStr8, &list, &s2);
|
||||
result = result && list.first->item == &s2 && wpStr8ListTotalSize(&list) == 2 && list.node_count == 2;
|
||||
|
||||
wapp_dbl_list_push_front(Str8, &list, &s3);
|
||||
result = result && list.first->item == &s3 && wapp_str8_list_total_size(&list) == 3 && list.node_count == 3;
|
||||
wpDblListPushFront(WpStr8, &list, &s3);
|
||||
result = result && list.first->item == &s3 && wpStr8ListTotalSize(&list) == 3 && list.node_count == 3;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_push_back(void) {
|
||||
WpTestFuncResult test_str8_list_push_back(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s1);
|
||||
result = list.first == list.last && list.last->item == &s1 && wapp_str8_list_total_size(&list) == 1 && list.node_count == 1;
|
||||
wpDblListPushBack(WpStr8, &list, &s1);
|
||||
result = list.first == list.last && list.last->item == &s1 && wpStr8ListTotalSize(&list) == 1 && list.node_count == 1;
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s2);
|
||||
result = result && list.last->item == &s2 && wapp_str8_list_total_size(&list) == 2 && list.node_count == 2;
|
||||
wpDblListPushBack(WpStr8, &list, &s2);
|
||||
result = result && list.last->item == &s2 && wpStr8ListTotalSize(&list) == 2 && list.node_count == 2;
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s3);
|
||||
result = result && list.last->item == &s3 && wapp_str8_list_total_size(&list) == 3 && list.node_count == 3;
|
||||
wpDblListPushBack(WpStr8, &list, &s3);
|
||||
result = result && list.last->item == &s3 && wpStr8ListTotalSize(&list) == 3 && list.node_count == 3;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_insert(void) {
|
||||
WpTestFuncResult test_str8_list_insert(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
Str8 s4 = wapp_str8_lit("4");
|
||||
Str8 s5 = wapp_str8_lit("5");
|
||||
Str8 s6 = wapp_str8_lit("6");
|
||||
Str8 s7 = wapp_str8_lit("7");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
WpStr8 s4 = wpStr8Lit("4");
|
||||
WpStr8 s5 = wpStr8Lit("5");
|
||||
WpStr8 s6 = wpStr8Lit("6");
|
||||
WpStr8 s7 = wpStr8Lit("7");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s1);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s2);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s3);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s4);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s5);
|
||||
wpDblListPushBack(WpStr8, &list, &s1);
|
||||
wpDblListPushBack(WpStr8, &list, &s2);
|
||||
wpDblListPushBack(WpStr8, &list, &s3);
|
||||
wpDblListPushBack(WpStr8, &list, &s4);
|
||||
wpDblListPushBack(WpStr8, &list, &s5);
|
||||
|
||||
Str8 *node;
|
||||
wapp_dbl_list_insert(Str8, &list, &s6, 2);
|
||||
node = wapp_dbl_list_get(Str8, &list, 2);
|
||||
result = node != NULL && node == &s6 && wapp_str8_list_total_size(&list) == 6 && list.node_count == 6;
|
||||
wapp_dbl_list_insert(Str8, &list, &s7, 5);
|
||||
node = wapp_dbl_list_get(Str8, &list, 5);
|
||||
result = result && node != NULL && node == &s7 && wapp_str8_list_total_size(&list) == 7 && list.node_count == 7;
|
||||
WpStr8 *node;
|
||||
wpDblListInsert(WpStr8, &list, &s6, 2);
|
||||
node = wpDblListGet(WpStr8, &list, 2);
|
||||
result = node != NULL && node == &s6 && wpStr8ListTotalSize(&list) == 6 && list.node_count == 6;
|
||||
wpDblListInsert(WpStr8, &list, &s7, 5);
|
||||
node = wpDblListGet(WpStr8, &list, 5);
|
||||
result = result && node != NULL && node == &s7 && wpStr8ListTotalSize(&list) == 7 && list.node_count == 7;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_pop_front(void) {
|
||||
WpTestFuncResult test_str8_list_pop_front(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
Str8 s4 = wapp_str8_lit("4");
|
||||
Str8 s5 = wapp_str8_lit("5");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
WpStr8 s4 = wpStr8Lit("4");
|
||||
WpStr8 s5 = wpStr8Lit("5");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s1);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s2);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s3);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s4);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s5);
|
||||
wpDblListPushBack(WpStr8, &list, &s1);
|
||||
wpDblListPushBack(WpStr8, &list, &s2);
|
||||
wpDblListPushBack(WpStr8, &list, &s3);
|
||||
wpDblListPushBack(WpStr8, &list, &s4);
|
||||
wpDblListPushBack(WpStr8, &list, &s5);
|
||||
|
||||
Str8 *node = wapp_dbl_list_pop_front(Str8, &list);
|
||||
result = node == &s1 && wapp_str8_equal(node, &s1) && wapp_str8_list_total_size(&list) == 4 && list.node_count == 4;
|
||||
WpStr8 *node = wpDblListPopFront(WpStr8, &list);
|
||||
result = node == &s1 && wpStr8Equal(node, &s1) && wpStr8ListTotalSize(&list) == 4 && list.node_count == 4;
|
||||
|
||||
node = wapp_dbl_list_pop_front(Str8, &list);
|
||||
result = result && node == &s2 && wapp_str8_equal(node, &s2) && wapp_str8_list_total_size(&list) == 3 && list.node_count == 3;
|
||||
node = wpDblListPopFront(WpStr8, &list);
|
||||
result = result && node == &s2 && wpStr8Equal(node, &s2) && wpStr8ListTotalSize(&list) == 3 && list.node_count == 3;
|
||||
|
||||
node = wapp_dbl_list_pop_front(Str8, &list);
|
||||
result = result && node == &s3 && wapp_str8_equal(node, &s3) && wapp_str8_list_total_size(&list) == 2 && list.node_count == 2;
|
||||
node = wpDblListPopFront(WpStr8, &list);
|
||||
result = result && node == &s3 && wpStr8Equal(node, &s3) && wpStr8ListTotalSize(&list) == 2 && list.node_count == 2;
|
||||
|
||||
node = wapp_dbl_list_pop_front(Str8, &list);
|
||||
result = result && node == &s4 && wapp_str8_equal(node, &s4) && wapp_str8_list_total_size(&list) == 1 && list.node_count == 1;
|
||||
node = wpDblListPopFront(WpStr8, &list);
|
||||
result = result && node == &s4 && wpStr8Equal(node, &s4) && wpStr8ListTotalSize(&list) == 1 && list.node_count == 1;
|
||||
|
||||
node = wapp_dbl_list_pop_front(Str8, &list);
|
||||
result = result && node == &s5 && wapp_str8_equal(node, &s5) && wapp_str8_list_total_size(&list) == 0 && list.node_count == 0;
|
||||
node = wpDblListPopFront(WpStr8, &list);
|
||||
result = result && node == &s5 && wpStr8Equal(node, &s5) && wpStr8ListTotalSize(&list) == 0 && list.node_count == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_pop_back(void) {
|
||||
WpTestFuncResult test_str8_list_pop_back(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
Str8 s4 = wapp_str8_lit("4");
|
||||
Str8 s5 = wapp_str8_lit("5");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
WpStr8 s4 = wpStr8Lit("4");
|
||||
WpStr8 s5 = wpStr8Lit("5");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_front(Str8, &list, &s1);
|
||||
wapp_dbl_list_push_front(Str8, &list, &s2);
|
||||
wapp_dbl_list_push_front(Str8, &list, &s3);
|
||||
wapp_dbl_list_push_front(Str8, &list, &s4);
|
||||
wapp_dbl_list_push_front(Str8, &list, &s5);
|
||||
wpDblListPushFront(WpStr8, &list, &s1);
|
||||
wpDblListPushFront(WpStr8, &list, &s2);
|
||||
wpDblListPushFront(WpStr8, &list, &s3);
|
||||
wpDblListPushFront(WpStr8, &list, &s4);
|
||||
wpDblListPushFront(WpStr8, &list, &s5);
|
||||
|
||||
Str8 *node = wapp_dbl_list_pop_back(Str8, &list);
|
||||
result = node == &s1 && wapp_str8_equal(node, &s1) && wapp_str8_list_total_size(&list) == 4 && list.node_count == 4;
|
||||
WpStr8 *node = wpDblListPopBack(WpStr8, &list);
|
||||
result = node == &s1 && wpStr8Equal(node, &s1) && wpStr8ListTotalSize(&list) == 4 && list.node_count == 4;
|
||||
|
||||
node = wapp_dbl_list_pop_back(Str8, &list);
|
||||
result = result && node == &s2 && wapp_str8_equal(node, &s2) && wapp_str8_list_total_size(&list) == 3 && list.node_count == 3;
|
||||
node = wpDblListPopBack(WpStr8, &list);
|
||||
result = result && node == &s2 && wpStr8Equal(node, &s2) && wpStr8ListTotalSize(&list) == 3 && list.node_count == 3;
|
||||
|
||||
node = wapp_dbl_list_pop_back(Str8, &list);
|
||||
result = result && node == &s3 && wapp_str8_equal(node, &s3) && wapp_str8_list_total_size(&list) == 2 && list.node_count == 2;
|
||||
node = wpDblListPopBack(WpStr8, &list);
|
||||
result = result && node == &s3 && wpStr8Equal(node, &s3) && wpStr8ListTotalSize(&list) == 2 && list.node_count == 2;
|
||||
|
||||
node = wapp_dbl_list_pop_back(Str8, &list);
|
||||
result = result && node == &s4 && wapp_str8_equal(node, &s4) && wapp_str8_list_total_size(&list) == 1 && list.node_count == 1;
|
||||
node = wpDblListPopBack(WpStr8, &list);
|
||||
result = result && node == &s4 && wpStr8Equal(node, &s4) && wpStr8ListTotalSize(&list) == 1 && list.node_count == 1;
|
||||
|
||||
node = wapp_dbl_list_pop_back(Str8, &list);
|
||||
result = result && node == &s5 && wapp_str8_equal(node, &s5) && wapp_str8_list_total_size(&list) == 0 && list.node_count == 0;
|
||||
node = wpDblListPopBack(WpStr8, &list);
|
||||
result = result && node == &s5 && wpStr8Equal(node, &s5) && wpStr8ListTotalSize(&list) == 0 && list.node_count == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_remove(void) {
|
||||
WpTestFuncResult test_str8_list_remove(void) {
|
||||
b8 result;
|
||||
|
||||
Str8 s1 = wapp_str8_lit("1");
|
||||
Str8 s2 = wapp_str8_lit("2");
|
||||
Str8 s3 = wapp_str8_lit("3");
|
||||
Str8 s4 = wapp_str8_lit("4");
|
||||
Str8 s5 = wapp_str8_lit("5");
|
||||
WpStr8 s1 = wpStr8Lit("1");
|
||||
WpStr8 s2 = wpStr8Lit("2");
|
||||
WpStr8 s3 = wpStr8Lit("3");
|
||||
WpStr8 s4 = wpStr8Lit("4");
|
||||
WpStr8 s5 = wpStr8Lit("5");
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
wapp_dbl_list_push_back(Str8, &list, &s1);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s2);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s3);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s4);
|
||||
wapp_dbl_list_push_back(Str8, &list, &s5);
|
||||
wpDblListPushBack(WpStr8, &list, &s1);
|
||||
wpDblListPushBack(WpStr8, &list, &s2);
|
||||
wpDblListPushBack(WpStr8, &list, &s3);
|
||||
wpDblListPushBack(WpStr8, &list, &s4);
|
||||
wpDblListPushBack(WpStr8, &list, &s5);
|
||||
|
||||
Str8 *node = wapp_dbl_list_remove(Str8, &list, 0);
|
||||
result = node == &s1 && wapp_str8_equal(node, &s1) && wapp_str8_list_total_size(&list) == 4 && list.node_count == 4;
|
||||
WpStr8 *node = wpDblListRemove(WpStr8, &list, 0);
|
||||
result = node == &s1 && wpStr8Equal(node, &s1) && wpStr8ListTotalSize(&list) == 4 && list.node_count == 4;
|
||||
|
||||
node = wapp_dbl_list_remove(Str8, &list, 0);
|
||||
result = result && node == &s2 && wapp_str8_equal(node, &s2) && wapp_str8_list_total_size(&list) == 3 && list.node_count == 3;
|
||||
node = wpDblListRemove(WpStr8, &list, 0);
|
||||
result = result && node == &s2 && wpStr8Equal(node, &s2) && wpStr8ListTotalSize(&list) == 3 && list.node_count == 3;
|
||||
|
||||
node = wapp_dbl_list_remove(Str8, &list, 0);
|
||||
result = result && node == &s3 && wapp_str8_equal(node, &s3) && wapp_str8_list_total_size(&list) == 2 && list.node_count == 2;
|
||||
node = wpDblListRemove(WpStr8, &list, 0);
|
||||
result = result && node == &s3 && wpStr8Equal(node, &s3) && wpStr8ListTotalSize(&list) == 2 && list.node_count == 2;
|
||||
|
||||
node = wapp_dbl_list_remove(Str8, &list, 0);
|
||||
result = result && node == &s4 && wapp_str8_equal(node, &s4) && wapp_str8_list_total_size(&list) == 1 && list.node_count == 1;
|
||||
node = wpDblListRemove(WpStr8, &list, 0);
|
||||
result = result && node == &s4 && wpStr8Equal(node, &s4) && wpStr8ListTotalSize(&list) == 1 && list.node_count == 1;
|
||||
|
||||
node = wapp_dbl_list_remove(Str8, &list, 0);
|
||||
result = result && node == &s5 && wapp_str8_equal(node, &s5) && wapp_str8_list_total_size(&list) == 0 && list.node_count == 0;
|
||||
node = wpDblListRemove(WpStr8, &list, 0);
|
||||
result = result && node == &s5 && wpStr8Equal(node, &s5) && wpStr8ListTotalSize(&list) == 0 && list.node_count == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
TestFuncResult test_str8_list_empty(void) {
|
||||
WpTestFuncResult test_str8_list_empty(void) {
|
||||
b8 result;
|
||||
|
||||
Str8List list = wapp_dbl_list(Str8);
|
||||
WpStr8List list = wpDblList(WpStr8);
|
||||
|
||||
Str8 hello = wapp_str8_lit("Hello");
|
||||
wapp_dbl_list_push_back(Str8, &list, &hello);
|
||||
WpStr8 hello = wpStr8Lit("Hello");
|
||||
wpDblListPushBack(WpStr8, &list, &hello);
|
||||
|
||||
Str8 from = wapp_str8_lit("from");
|
||||
wapp_dbl_list_push_back(Str8, &list, &from);
|
||||
WpStr8 from = wpStr8Lit("from");
|
||||
wpDblListPushBack(WpStr8, &list, &from);
|
||||
|
||||
Str8 wizapp = wapp_str8_lit("wizapp");
|
||||
wapp_dbl_list_push_back(Str8, &list, &wizapp);
|
||||
WpStr8 wizapp = wpStr8Lit("wizapp");
|
||||
wpDblListPushBack(WpStr8, &list, &wizapp);
|
||||
|
||||
Str8 stdlib = wapp_str8_lit("stdlib");
|
||||
wapp_dbl_list_push_back(Str8, &list, &stdlib);
|
||||
WpStr8 stdlib = wpStr8Lit("stdlib");
|
||||
wpDblListPushBack(WpStr8, &list, &stdlib);
|
||||
|
||||
wapp_dbl_list_empty(Str8, &list);
|
||||
wpDblListEmpty(WpStr8, &list);
|
||||
|
||||
result = list.first == NULL && list.last == NULL && list.node_count == 0 && wapp_str8_list_total_size(&list) == 0;
|
||||
result = list.first == NULL && list.last == NULL && list.node_count == 0 && wpStr8ListTotalSize(&list) == 0;
|
||||
|
||||
return wapp_tester_result(result);
|
||||
return wpTesterResult(result);
|
||||
}
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
|
||||
#include "wapp.h"
|
||||
|
||||
TestFuncResult test_str8_list_get(void);
|
||||
TestFuncResult test_str8_list_push_front(void);
|
||||
TestFuncResult test_str8_list_push_back(void);
|
||||
TestFuncResult test_str8_list_insert(void);
|
||||
TestFuncResult test_str8_list_pop_front(void);
|
||||
TestFuncResult test_str8_list_pop_back(void);
|
||||
TestFuncResult test_str8_list_remove(void);
|
||||
TestFuncResult test_str8_list_empty(void);
|
||||
WpTestFuncResult test_str8_list_get(void);
|
||||
WpTestFuncResult test_str8_list_push_front(void);
|
||||
WpTestFuncResult test_str8_list_push_back(void);
|
||||
WpTestFuncResult test_str8_list_insert(void);
|
||||
WpTestFuncResult test_str8_list_pop_front(void);
|
||||
WpTestFuncResult test_str8_list_pop_back(void);
|
||||
WpTestFuncResult test_str8_list_remove(void);
|
||||
WpTestFuncResult test_str8_list_empty(void);
|
||||
|
||||
#endif // !TEST_STR8_LIST_H
|
||||
|
||||
Reference in New Issue
Block a user