diff --git a/tests/str8/test_str8.c b/tests/str8/test_str8.c new file mode 100644 index 0000000..7328d05 --- /dev/null +++ b/tests/str8/test_str8.c @@ -0,0 +1,86 @@ +#include "test_str8.h" +#include "str8.h" +#include "tester.h" +#include + +TestFuncResult test_str8_lit(void) { + bool result; + + Str8 s1 = wapp_str8_lit("Hello world"); + result = s1.capacity == 11 && s1.capacity == s1.size; + + Str8 s2 = wapp_str8_lit("Different strokes for different folks"); + result = result && s2.capacity == 37 && s2.capacity == s2.size; + + Str8 s3 = wapp_str8_lit("Discretion is the better part of valour"); + result = result && s3.capacity == 39 && s3.capacity == s3.size; + + Str8 s4 = wapp_str8_lit("Distance lends enchantment to the view"); + result = result && s4.capacity == 38 && s4.capacity == s4.size; + + Str8 s5 = wapp_str8_lit("Do as I say, not as I do"); + result = result && s5.capacity == 24 && s5.capacity == s5.size; + + Str8 s6 = wapp_str8_lit("Do as you would be done by"); + result = result && s6.capacity == 26 && s6.capacity == s6.size; + + Str8 s7 = wapp_str8_lit("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); +} + +TestFuncResult test_str8_buf(void) { + bool result; + + Str8 s1 = wapp_str8_buf(1024); + result = s1.capacity == 1024 && s1.size == 0; + + Str8 s2 = wapp_str8_buf(2048); + result = result && s2.capacity == 2048 && s2.size == 0; + + Str8 s3 = wapp_str8_buf(4096); + result = result && s3.capacity == 4096 && s3.size == 0; + + Str8 s4 = wapp_str8_buf(8192); + result = result && s4.capacity == 8192 && s4.size == 0; + + return wapp_tester_result(result); +} + +TestFuncResult test_str8_get_index_within_bounds(void) { + bool result; + + Str8 s1 = wapp_str8_lit("Hello world"); + result = wapp_str8_get(&s1, 4) == 'o'; + + Str8 s2 = wapp_str8_lit("Different strokes for different folks"); + result = result && wapp_str8_get(&s2, 0) == 'D'; + + Str8 s3 = wapp_str8_lit("Discretion is the better part of valour"); + result = result && wapp_str8_get(&s3, 13) == ' '; + + Str8 s4 = wapp_str8_lit("Distance lends enchantment to the view"); + result = result && wapp_str8_get(&s4, 20) == 'n'; + + Str8 s5 = wapp_str8_lit("Do as I say, not as I do"); + result = result && wapp_str8_get(&s5, 11) == ','; + + Str8 s6 = wapp_str8_lit("Do as you would be done by"); + result = result && wapp_str8_get(&s6, 25) == 'y'; + + Str8 s7 = wapp_str8_lit("Do unto others as you would have them do to you"); + result = result && wapp_str8_get(&s7, 16) == 's'; + + return wapp_tester_result(result); +} + +TestFuncResult test_str8_get_index_out_of_bounds(void) { + Str8 s1 = wapp_str8_lit("Hello world"); + bool result = wapp_str8_get(&s1, 20) == '\0'; + return wapp_tester_result(result); +} + +TestFuncResult test_str8_set(void) { + return wapp_tester_result(true); +} diff --git a/tests/str8/test_str8.h b/tests/str8/test_str8.h new file mode 100644 index 0000000..2563410 --- /dev/null +++ b/tests/str8/test_str8.h @@ -0,0 +1,20 @@ +#ifndef TEST_STR8_H +#define TEST_STR8_H + +#include "tester.h" + +#ifdef __cplusplus +BEGIN_C_LINKAGE +#endif // __cplusplus + +TestFuncResult test_str8_lit(void); +TestFuncResult test_str8_buf(void); +TestFuncResult test_str8_get_index_within_bounds(void); +TestFuncResult test_str8_get_index_out_of_bounds(void); +TestFuncResult test_str8_set(void); + +#ifdef __cplusplus +END_C_LINKAGE +#endif // __cplusplus + +#endif // !TEST_STR8_H