aboutsummaryrefslogtreecommitdiff
path: root/tests/strings.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/strings.c')
-rw-r--r--tests/strings.c103
1 files changed, 103 insertions, 0 deletions
diff --git a/tests/strings.c b/tests/strings.c
new file mode 100644
index 0000000..d49d525
--- /dev/null
+++ b/tests/strings.c
@@ -0,0 +1,103 @@
+#include <ungrateful.h>
+
+int main(void) {
+ List splits;
+ Allocator talloc;
+ String result;
+
+ assert(un_string_get_length(UN_CSTR "Hello") == 5);
+ assert(un_string_get_length(UN_CSTR "") == 0);
+ assert(un_string_get_length(UN_CSTR "What") == 4);
+
+ talloc = un_allocator_get_temporary();
+
+ result = un_string_concat(UN_STR("Hello "), UN_STR("world!"), talloc);
+ assert(!un_string_compare(result, UN_STR("Hello world!")));
+
+ assert(!un_string_compare(un_string_copy(result, talloc), result));
+
+ splits = un_string_split(UN_STR("Eatin burger wit no honey mustard"), UN_STR(" "), talloc);
+
+ assert(splits.count == 6);
+
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 0), UN_STR("Eatin")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 1), UN_STR("burger")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 2), UN_STR("wit")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 3), UN_STR("no")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 4), UN_STR("honey")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 5), UN_STR("mustard")));
+
+ un_list_destroy(&splits);
+
+ splits = un_string_split(UN_STR("Eatin||burger||wit||no||honey||mustard"), UN_STR("||"), talloc);
+
+ assert(splits.count == 6);
+
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 0), UN_STR("Eatin")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 1), UN_STR("burger")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 2), UN_STR("wit")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 3), UN_STR("no")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 4), UN_STR("honey")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 5), UN_STR("mustard")));
+
+ un_list_destroy(&splits);
+
+ splits = un_string_split(UN_STR("Eatin||burger||wit||no||honey||mustard||a"), UN_STR("||"), talloc);
+
+ assert(splits.count == 7);
+
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 0), UN_STR("Eatin")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 1), UN_STR("burger")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 2), UN_STR("wit")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 3), UN_STR("no")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 4), UN_STR("honey")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 5), UN_STR("mustard")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 6), UN_STR("a")));
+
+ un_list_destroy(&splits);
+
+ splits = un_string_split(UN_STR("a||Eatin||burger||wit||no||honey||mustard||a"), UN_STR("||"), talloc);
+
+ assert(splits.count == 8);
+
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 0), UN_STR("a")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 1), UN_STR("Eatin")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 2), UN_STR("burger")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 3), UN_STR("wit")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 4), UN_STR("no")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 5), UN_STR("honey")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 6), UN_STR("mustard")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 7), UN_STR("a")));
+
+ un_list_destroy(&splits);
+
+ splits = un_string_split(UN_STR("||Eatin||burger||wit||no||honey||mustard||"), UN_STR("||"), talloc);
+
+ assert(splits.count == 6);
+
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 0), UN_STR("Eatin")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 1), UN_STR("burger")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 2), UN_STR("wit")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 3), UN_STR("no")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 4), UN_STR("honey")));
+ assert(!un_string_compare(*(String*)un_list_get(&splits, 5), UN_STR("mustard")));
+
+ assert(!un_string_compare(un_string_join(splits, UN_STR(" "), talloc), UN_STR("Eatin burger wit no honey mustard")));
+
+ un_list_destroy(&splits);
+
+ assert(!un_string_compare(un_string_substring(UN_STR("HelloWorld!"), 5, 6), UN_STR("World!")));
+ assert(!un_string_compare(un_string_substring(UN_STR("HelloWorld!"), 0, 11), UN_STR("HelloWorld!")));
+ assert(!un_string_compare(un_string_substring(UN_STR("HelloWorld!"), 10, 1), UN_STR("!")));
+
+ assert(un_string_index_of(UN_STR("CP/M"), (u8)'/', 0) == 2);
+ assert(un_string_index_of_last(UN_STR("https://github.com/bonmas14"), (u8)'/') == 18);
+
+ assert(!un_string_compare(un_string_swap(UN_STR("/path/from/unix/systems/"), (u8)'/', (u8) '\\', talloc), UN_STR("\\path\\from\\unix\\systems\\")));
+
+ assert(!un_string_compare(
+ un_string_format(talloc, UN_STR("/path/%s/unix/a %d %u %%"), UN_STR("test"), (s64)-100, (u64)404),
+ UN_STR("/path/test/unix/a -100 404 %")
+ )
+ );
+}