diff options
Diffstat (limited to 'src/str.gleam')
-rw-r--r-- | src/str.gleam | 48 |
1 files changed, 44 insertions, 4 deletions
diff --git a/src/str.gleam b/src/str.gleam index 8aa3e29..b09b8dc 100644 --- a/src/str.gleam +++ b/src/str.gleam @@ -16,10 +16,6 @@ test length { length("") |> expect:equal(_, 0) - - // TODO: This crashes. - // length("é") - // |> expect:equal(_, 1) } pub external fn lowercase(String) -> String = "string" "lowercase" @@ -77,3 +73,47 @@ test replace { |> replace(_, ",", "++") |> expect:equal(_, "Gleam++Erlang++Elixir") } + +pub external fn from_int(Int) -> String = "erlang" "integer_to_binary" + +test from_int { + 123 + |> from_int + |> expect:equal(_, "123") + + -123 + |> from_int + |> expect:equal(_, "-123") + + 0123 + |> from_int + |> expect:equal(_, "123") +} + +pub external fn base_from_int(Int, Int) -> String = "erlang" "integer_to_binary" + +test base_from_int { + 100 + |> base_from_int(_, 16) + |> expect:equal(_, "64") + + -100 + |> base_from_int(_, 16) + |> expect:equal(_, "-64") +} + +pub fn from_float(f) { + f + |> iodata:from_float + |> iodata:to_string +} + +test from_float { + 123.0 + |> from_float + |> expect:equal(_, "123.0") + + -8.1 + |> from_float + |> expect:equal(_, "-8.1") +} |