1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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 %")
)
);
}
|