aboutsummaryrefslogtreecommitdiff
path: root/tests/un/strings.c
blob: 87f1aed047bfe4d1dbf9503e0fc748087de16310 (plain)
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, true);

    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, true);

    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, true);

    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, true);

    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, true);

    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 %")
                )
          ); 
}