diff options
author | Louis Pilfold <louis@lpil.uk> | 2019-04-22 22:33:15 +0000 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2019-04-22 22:33:15 +0000 |
commit | 077aaf3468c640b84ff53fc92171292ddae55bf4 (patch) | |
tree | a152edcc2240f053681ca6ba315dfeb9ed8fa793 /gen | |
parent | afdabad5cd2df77eb3f309aab9da3d34e36a0b49 (diff) | |
download | gleam_stdlib-077aaf3468c640b84ff53fc92171292ddae55bf4.tar.gz gleam_stdlib-077aaf3468c640b84ff53fc92171292ddae55bf4.zip |
Int and float modules
Diffstat (limited to 'gen')
-rw-r--r-- | gen/src/float.erl | 10 | ||||
-rw-r--r-- | gen/src/int.erl | 13 | ||||
-rw-r--r-- | gen/src/str.erl | 17 | ||||
-rw-r--r-- | gen/test/float_test.erl | 16 | ||||
-rw-r--r-- | gen/test/int_test.erl | 21 | ||||
-rw-r--r-- | gen/test/list_test.erl | 2 | ||||
-rw-r--r-- | gen/test/str_test.erl | 31 |
7 files changed, 63 insertions, 47 deletions
diff --git a/gen/src/float.erl b/gen/src/float.erl new file mode 100644 index 0000000..e5f843b --- /dev/null +++ b/gen/src/float.erl @@ -0,0 +1,10 @@ +-module(float). +-compile(no_auto_import). + +-export([parse/1, to_string/1]). + +parse(A) -> + gleam__stdlib:parse_float(A). + +to_string(F) -> + iodata:to_string(iodata:from_float(F)). diff --git a/gen/src/int.erl b/gen/src/int.erl new file mode 100644 index 0000000..d3b5939 --- /dev/null +++ b/gen/src/int.erl @@ -0,0 +1,13 @@ +-module(int). +-compile(no_auto_import). + +-export([parse/1, to_string/1, to_base_string/2]). + +parse(A) -> + gleam__stdlib:parse_int(A). + +to_string(A) -> + erlang:integer_to_binary(A). + +to_base_string(A, B) -> + erlang:integer_to_binary(A, B). diff --git a/gen/src/str.erl b/gen/src/str.erl index 4a35a35..153fd49 100644 --- a/gen/src/str.erl +++ b/gen/src/str.erl @@ -1,7 +1,7 @@ -module(str). -compile(no_auto_import). --export([length/1, lowercase/1, uppercase/1, reverse/1, split/2, replace/3, append/2, from_int/1, parse_int/1, parse_float/1, base_from_int/2, from_float/1]). +-export([length/1, lowercase/1, uppercase/1, reverse/1, split/2, replace/3, append/2]). length(A) -> string:length(A). @@ -23,18 +23,3 @@ replace(String, Pattern, With) -> append(S1, S2) -> iodata:to_string(iodata:append(iodata:new(S1), S2)). - -from_int(A) -> - erlang:integer_to_binary(A). - -parse_int(A) -> - gleam__stdlib:parse_int(A). - -parse_float(A) -> - gleam__stdlib:parse_float(A). - -base_from_int(A, B) -> - erlang:integer_to_binary(A, B). - -from_float(F) -> - iodata:to_string(iodata:from_float(F)). diff --git a/gen/test/float_test.erl b/gen/test/float_test.erl new file mode 100644 index 0000000..642e5ed --- /dev/null +++ b/gen/test/float_test.erl @@ -0,0 +1,16 @@ +-module(float_test). +-compile(no_auto_import). + +-export([parse_test/0, to_string_test/0]). + +parse_test() -> + expect:equal(float:parse(<<"1.23">>), {ok, 1.23}), + expect:equal(float:parse(<<"5.0">>), {ok, 5.0}), + expect:equal(float:parse(<<"0.123456789">>), {ok, 0.123456789}), + expect:is_error(float:parse(<<"">>)), + expect:is_error(float:parse(<<"what">>)), + expect:is_error(float:parse(<<"1">>)). + +to_string_test() -> + expect:equal(float:to_string(123.0), <<"123.0">>), + expect:equal(float:to_string(-8.1), <<"-8.1">>). diff --git a/gen/test/int_test.erl b/gen/test/int_test.erl new file mode 100644 index 0000000..a50b5e6 --- /dev/null +++ b/gen/test/int_test.erl @@ -0,0 +1,21 @@ +-module(int_test). +-compile(no_auto_import). + +-export([to_string/0, parse/0, to_base_string/0]). + +to_string() -> + expect:equal(int:to_string(123), <<"123">>), + expect:equal(int:to_string(-123), <<"-123">>), + expect:equal(int:to_string(123), <<"123">>). + +parse() -> + expect:equal(int:parse(<<"123">>), {ok, 123}), + expect:equal(int:parse(<<"-123">>), {ok, -123}), + expect:equal(int:parse(<<"0123">>), {ok, 123}), + expect:is_error(int:parse(<<"">>)), + expect:is_error(int:parse(<<"what">>)), + expect:is_error(int:parse(<<"1.23">>)). + +to_base_string() -> + expect:equal(int:to_base_string(100, 16), <<"64">>), + expect:equal(int:to_base_string(-100, 16), <<"-64">>). diff --git a/gen/test/list_test.erl b/gen/test/list_test.erl index 1944d25..3011c7e 100644 --- a/gen/test/list_test.erl +++ b/gen/test/list_test.erl @@ -136,6 +136,6 @@ sort_test() -> index_map_test() -> expect:equal(list:index_map([3, 4, 5], fun(I, X) -> {I, X} end), [{0, 3}, {1, 4}, {2, 5}]), - F = fun(I, X) -> str:append(X, str:from_int(I)) end, + F = fun(I, X) -> str:append(X, int:to_string(I)) end, expect:equal(list:index_map([<<"a">>, <<"b">>, <<"c">>], F), [<<"a0">>, <<"b1">>, <<"c2">>]). diff --git a/gen/test/str_test.erl b/gen/test/str_test.erl index b3a89b2..f6a16a3 100644 --- a/gen/test/str_test.erl +++ b/gen/test/str_test.erl @@ -1,7 +1,7 @@ -module(str_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, from_int_test/0, parse_int_test/0, parse_float_test/0, base_from_int_test/0, from_float_test/0]). +-export([length_test/0, lowercase_test/0, uppercase_test/0, reverse_test/0, split_test/0, replace_test/0, append_test/0]). length_test() -> expect:equal(str:length(<<"ß↑e̊">>), 3), @@ -29,32 +29,3 @@ replace_test() -> append_test() -> expect:equal(str:append(<<"Test">>, <<" Me">>), <<"Test Me">>). - -from_int_test() -> - expect:equal(str:from_int(123), <<"123">>), - expect:equal(str:from_int(-123), <<"-123">>), - expect:equal(str:from_int(123), <<"123">>). - -parse_int_test() -> - expect:equal(str:parse_int(<<"123">>), {ok, 123}), - expect:equal(str:parse_int(<<"-123">>), {ok, -123}), - expect:equal(str:parse_int(<<"0123">>), {ok, 123}), - expect:is_error(str:parse_int(<<"">>)), - expect:is_error(str:parse_int(<<"what">>)), - expect:is_error(str:parse_int(<<"1.23">>)). - -parse_float_test() -> - expect:equal(str:parse_float(<<"1.23">>), {ok, 1.23}), - expect:equal(str:parse_float(<<"5.0">>), {ok, 5.0}), - expect:equal(str:parse_float(<<"0.123456789">>), {ok, 0.123456789}), - expect:is_error(str:parse_float(<<"">>)), - expect:is_error(str:parse_float(<<"what">>)), - expect:is_error(str:parse_float(<<"1">>)). - -base_from_int_test() -> - expect:equal(str:base_from_int(100, 16), <<"64">>), - expect:equal(str:base_from_int(-100, 16), <<"-64">>). - -from_float_test() -> - expect:equal(str:from_float(123.0), <<"123.0">>), - expect:equal(str:from_float(-8.1), <<"-8.1">>). |