From 4f4be7136e98b3db1489bbf39bafcae02d41692c Mon Sep 17 00:00:00 2001 From: ILYA Khlopotov Date: Wed, 9 Sep 2015 07:32:26 -0700 Subject: [PATCH 1/3] Fix to_integer and to_float --- src/config.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config.erl b/src/config.erl index 8e79296..4537ad2 100644 --- a/src/config.erl +++ b/src/config.erl @@ -75,7 +75,7 @@ to_integer(List) when is_list(List) -> to_integer(Int) when is_integer(Int) -> Int; to_integer(Bin) when is_binary(Bin) -> - binary_to_list(list_to_integer(Bin)). + list_to_integer(binary_to_list(Bin)). get_float(Section, Key, Default) when is_float(Default) -> try @@ -97,7 +97,7 @@ to_float(Float) when is_float(Float) -> to_float(Int) when is_integer(Int) -> list_to_float(integer_to_list(Int)); to_float(Bin) when is_binary(Bin) -> - binary_to_list(list_to_float(Bin)). + list_to_float(binary_to_list(Bin)). get_boolean(Section, Key, Default) when is_boolean(Default) -> try From 6df0b68971356291f49d4be3f133097b77f603da Mon Sep 17 00:00:00 2001 From: ILYA Khlopotov Date: Wed, 9 Sep 2015 08:21:09 -0700 Subject: [PATCH 2/3] Fix to_float(Int) --- src/config.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.erl b/src/config.erl index 4537ad2..cf36d2b 100644 --- a/src/config.erl +++ b/src/config.erl @@ -95,7 +95,7 @@ to_float(List) when is_list(List) -> to_float(Float) when is_float(Float) -> Float; to_float(Int) when is_integer(Int) -> - list_to_float(integer_to_list(Int)); + list_to_float(integer_to_list(Int) ++ ".0"); to_float(Bin) when is_binary(Bin) -> list_to_float(binary_to_list(Bin)). From b2ecd0d47a776256956ce045123423494ff85e8e Mon Sep 17 00:00:00 2001 From: ILYA Khlopotov Date: Wed, 9 Sep 2015 08:21:37 -0700 Subject: [PATCH 3/3] Add tests for to_integer and to_float --- src/config.erl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/config.erl b/src/config.erl index cf36d2b..2156a7b 100644 --- a/src/config.erl +++ b/src/config.erl @@ -367,3 +367,25 @@ debug_config() -> ok end. +-ifdef(TEST). +-include_lib("eunit/include/eunit.hrl"). + +to_integer_test() -> + ?assertEqual(1, to_integer(1)), + ?assertEqual(1, to_integer(<<"1">>)), + ?assertEqual(1, to_integer("1")), + ?assertEqual(-1, to_integer("-01")), + ?assertEqual(0, to_integer("-0")), + ?assertEqual(0, to_integer("+0")), + ok. + +to_float_test() -> + ?assertEqual(1.0, to_float(1)), + ?assertEqual(1.0, to_float(<<"1.0">>)), + ?assertEqual(1.0, to_float("1.0")), + ?assertEqual(-1.1, to_float("-01.1")), + ?assertEqual(0.0, to_float("-0.0")), + ?assertEqual(0.0, to_float("+0.0")), + ok. + +-endif.