diff options
author | Louis Pilfold <louis@lpil.uk> | 2019-04-01 19:20:11 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2019-04-01 19:20:16 +0000 |
commit | 2c6031e323226abbf3c1bc961e7ee56213add0d1 (patch) | |
tree | 83e8f84effcc9d5ecc08bf288d77bb7b6e1d235f /gen | |
parent | 6be7e9b778ddd9761d8000212232104dee39da6c (diff) | |
download | gleam_stdlib-2c6031e323226abbf3c1bc961e7ee56213add0d1.tar.gz gleam_stdlib-2c6031e323226abbf3c1bc961e7ee56213add0d1.zip |
Additional string fns
Diffstat (limited to 'gen')
-rw-r--r-- | gen/iodata.erl | 39 | ||||
-rw-r--r-- | gen/str.erl | 30 |
2 files changed, 59 insertions, 10 deletions
diff --git a/gen/iodata.erl b/gen/iodata.erl index 5a2ab4a..3401d3f 100644 --- a/gen/iodata.erl +++ b/gen/iodata.erl @@ -2,7 +2,7 @@ -compile(no_auto_import). -include_lib("eunit/include/eunit.hrl"). --export([prepend/2, append/2, concat/1, new/1, to_string/1, byte_size/1, lowercase/1, uppercase/1, reverse/1, split/2, replace/3, is_equal/2, is_empty/1]). +-export([prepend/2, append/2, prepend_iodata/2, append_iodata/2, from_strings/1, concat/1, new/1, to_string/1, byte_size/1, from_float/1, lowercase/1, uppercase/1, reverse/1, split/2, replace/3, is_equal/2, is_empty/1]). prepend(A, B) -> gleam__stdlib:iodata_prepend(A, B). @@ -10,6 +10,15 @@ prepend(A, B) -> append(A, B) -> gleam__stdlib:iodata_append(A, B). +prepend_iodata(A, B) -> + gleam__stdlib:iodata_prepend(A, B). + +append_iodata(A, B) -> + gleam__stdlib:iodata_append(A, B). + +from_strings(A) -> + gleam__stdlib:identity(A). + concat(A) -> gleam__stdlib:identity(A). @@ -22,12 +31,22 @@ to_string(A) -> byte_size(A) -> erlang:iolist_size(A). +from_float(A) -> + io_lib_format:fwrite_g(A). + -ifdef(TEST). iodata_test() -> Iodata = prepend(append(append(new(<<"ello">>), <<",">>), <<" world!">>), <<"H">>), expect:equal(to_string(Iodata), <<"Hello, world!">>), - expect:equal(byte_size(Iodata), 13). + expect:equal(byte_size(Iodata), 13), + Iodata1 = prepend_iodata(append_iodata(append_iodata(new(<<"ello">>), + new(<<",">>)), + concat([new(<<" wo">>), + new(<<"rld!">>)])), + new(<<"H">>)), + expect:equal(to_string(Iodata1), <<"Hello, world!">>), + expect:equal(byte_size(Iodata1), 13). -endif. lowercase(A) -> @@ -35,7 +54,7 @@ lowercase(A) -> -ifdef(TEST). lowercase_test() -> - expect:equal(to_string(lowercase(concat([<<"Gleam">>, <<"Gleam">>]))), + expect:equal(to_string(lowercase(from_strings([<<"Gleam">>, <<"Gleam">>]))), <<"gleamgleam">>). -endif. @@ -44,7 +63,7 @@ uppercase(A) -> -ifdef(TEST). uppercase_test() -> - expect:equal(to_string(uppercase(concat([<<"Gleam">>, <<"Gleam">>]))), + expect:equal(to_string(uppercase(from_strings([<<"Gleam">>, <<"Gleam">>]))), <<"GLEAMGLEAM">>). -endif. @@ -61,8 +80,10 @@ split(Iodata, On) -> split_test() -> expect:equal(split(new(<<"Gleam,Erlang,Elixir">>), <<",">>), [new(<<"Gleam">>), new(<<"Erlang">>), new(<<"Elixir">>)]), - expect:equal(split(concat([<<"Gleam, Erl">>, <<"ang,Elixir">>]), <<", ">>), - [new(<<"Gleam">>), concat([<<"Erl">>, <<"ang,Elixir">>])]). + expect:equal(split(from_strings([<<"Gleam, Erl">>, <<"ang,Elixir">>]), + <<", ">>), + [new(<<"Gleam">>), + from_strings([<<"Erl">>, <<"ang,Elixir">>])]). -endif. erl_replace(A, B, C, D) -> @@ -76,7 +97,7 @@ is_equal(A, B) -> -ifdef(TEST). is_equal_test() -> - expect:true(is_equal(new(<<"12">>), concat([<<"1">>, <<"2">>]))), + expect:true(is_equal(new(<<"12">>), from_strings([<<"1">>, <<"2">>]))), expect:true(is_equal(new(<<"12">>), new(<<"12">>))), expect:false(is_equal(new(<<"12">>), new(<<"2">>))). -endif. @@ -88,6 +109,6 @@ is_empty(A) -> is_empty_test() -> expect:true(is_empty(new(<<"">>))), expect:false(is_empty(new(<<"12">>))), - expect:true(is_empty(concat([]))), - expect:true(is_empty(concat([<<"">>, <<"">>]))). + expect:true(is_empty(from_strings([]))), + expect:true(is_empty(from_strings([<<"">>, <<"">>]))). -endif. diff --git a/gen/str.erl b/gen/str.erl index 9625807..4ca27f5 100644 --- a/gen/str.erl +++ b/gen/str.erl @@ -2,7 +2,7 @@ -compile(no_auto_import). -include_lib("eunit/include/eunit.hrl"). --export([length/1, lowercase/1, uppercase/1, reverse/1, split/2, replace/3]). +-export([length/1, lowercase/1, uppercase/1, reverse/1, split/2, replace/3, from_int/1, base_from_int/2, from_float/1]). length(A) -> string:length(A). @@ -57,3 +57,31 @@ replace_test() -> expect:equal(replace(<<"Gleam,Erlang,Elixir">>, <<",">>, <<"++">>), <<"Gleam++Erlang++Elixir">>). -endif. + +from_int(A) -> + erlang:integer_to_binary(A). + +-ifdef(TEST). +from_int_test() -> + expect:equal(from_int(123), <<"123">>), + expect:equal(from_int(-123), <<"-123">>), + expect:equal(from_int(123), <<"123">>). +-endif. + +base_from_int(A, B) -> + erlang:integer_to_binary(A, B). + +-ifdef(TEST). +base_from_int_test() -> + expect:equal(base_from_int(100, 16), <<"64">>), + expect:equal(base_from_int(-100, 16), <<"-64">>). +-endif. + +from_float(F) -> + iodata:to_string(iodata:from_float(F)). + +-ifdef(TEST). +from_float_test() -> + expect:equal(from_float(123.0), <<"123.0">>), + expect:equal(from_float(-8.1), <<"-8.1">>). +-endif. |