aboutsummaryrefslogtreecommitdiff
path: root/gen/test/gleam@string_test.erl
blob: 07f3f9bbb4803111cd5aa95263fff4683167541d (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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
-module(gleam@string_test).
-compile(no_auto_import).

-export([length_test/0, lowercase_test/0, uppercase_test/0, reverse_test/0, split_test/0, replace_test/0, append_test/0, compare_test/0, contains_test/0, concat_test/0, repeat_test/0, join_test/0, trim_test/0, trim_left_test/0, trim_right_test/0]).

length_test() ->
    gleam@should:equal(gleam@string:length(<<"ß↑e̊"/utf8>>), 3),
    gleam@should:equal(gleam@string:length(<<"Gleam"/utf8>>), 5),
    gleam@should:equal(gleam@string:length(<<""/utf8>>), 0).

lowercase_test() ->
    gleam@should:equal(
        gleam@string:lowercase(<<"Gleam"/utf8>>),
        <<"gleam"/utf8>>
    ).

uppercase_test() ->
    gleam@should:equal(
        gleam@string:uppercase(<<"Gleam"/utf8>>),
        <<"GLEAM"/utf8>>
    ).

reverse_test() ->
    gleam@should:equal(
        gleam@string:reverse(<<"Gleam"/utf8>>),
        <<"maelG"/utf8>>
    ).

split_test() ->
    gleam@should:equal(
        gleam@string:split(<<"Gleam,Erlang,Elixir"/utf8>>, <<","/utf8>>),
        [<<"Gleam"/utf8>>, <<"Erlang"/utf8>>, <<"Elixir"/utf8>>]
    ),
    gleam@should:equal(
        gleam@string:split(<<"Gleam, Erlang,Elixir"/utf8>>, <<", "/utf8>>),
        [<<"Gleam"/utf8>>, <<"Erlang,Elixir"/utf8>>]
    ).

replace_test() ->
    gleam@should:equal(
        gleam@string:replace(
            <<"Gleam,Erlang,Elixir"/utf8>>,
            <<","/utf8>>,
            <<"++"/utf8>>
        ),
        <<"Gleam++Erlang++Elixir"/utf8>>
    ).

append_test() ->
    gleam@should:equal(
        gleam@string:append(<<"Test"/utf8>>, <<" Me"/utf8>>),
        <<"Test Me"/utf8>>
    ).

compare_test() ->
    gleam@should:equal(gleam@string:compare(<<""/utf8>>, <<""/utf8>>), eq),
    gleam@should:equal(gleam@string:compare(<<"a"/utf8>>, <<""/utf8>>), gt),
    gleam@should:equal(gleam@string:compare(<<"a"/utf8>>, <<"A"/utf8>>), gt),
    gleam@should:equal(gleam@string:compare(<<"A"/utf8>>, <<"B"/utf8>>), lt),
    gleam@should:equal(gleam@string:compare(<<"t"/utf8>>, <<"ABC"/utf8>>), gt).

contains_test() ->
    gleam@should:equal(
        gleam@string:contains(<<"gleam"/utf8>>, <<"ea"/utf8>>),
        true
    ),
    gleam@should:equal(
        gleam@string:contains(<<"gleam"/utf8>>, <<"x"/utf8>>),
        false
    ),
    gleam@should:equal(
        gleam@string:contains(<<"bellwether"/utf8>>, <<"bell"/utf8>>),
        true
    ).

concat_test() ->
    gleam@should:equal(
        gleam@string:concat(
            [<<"Hello"/utf8>>, <<", "/utf8>>, <<"world!"/utf8>>]
        ),
        <<"Hello, world!"/utf8>>
    ).

repeat_test() ->
    gleam@should:equal(
        gleam@string:repeat(<<"hi"/utf8>>, 3),
        <<"hihihi"/utf8>>
    ),
    gleam@should:equal(gleam@string:repeat(<<"hi"/utf8>>, 0), <<""/utf8>>),
    gleam@should:equal(gleam@string:repeat(<<"hi"/utf8>>, -1), <<""/utf8>>).

join_test() ->
    gleam@should:equal(
        gleam@string:join([<<"Hello"/utf8>>, <<"world!"/utf8>>], <<", "/utf8>>),
        <<"Hello, world!"/utf8>>
    ),
    gleam@should:equal(
        gleam@string:join([<<"Hello"/utf8>>, <<"world!"/utf8>>], <<"-"/utf8>>),
        <<"Hello-world!"/utf8>>
    ).

trim_test() ->
    gleam@should:equal(
        gleam@string:trim(<<"  hats  \n"/utf8>>),
        <<"hats"/utf8>>
    ).

trim_left_test() ->
    gleam@should:equal(
        gleam@string:trim_left(<<"  hats  \n"/utf8>>),
        <<"hats  \n"/utf8>>
    ).

trim_right_test() ->
    gleam@should:equal(
        gleam@string:trim_right(<<"  hats  \n"/utf8>>),
        <<"  hats"/utf8>>
    ).