From 151304663034ae06dfe2b137cc79b70577628605 Mon Sep 17 00:00:00 2001 From: inoas Date: Mon, 27 Jun 2022 19:47:37 +0000 Subject: [PATCH] String.inspect bitstring tests (#309) --- test/gleam/string_test.gleam | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/test/gleam/string_test.gleam b/test/gleam/string_test.gleam index 0fcc0e73..46b5e912 100644 --- a/test/gleam/string_test.gleam +++ b/test/gleam/string_test.gleam @@ -729,6 +729,11 @@ if javascript { string.inspect(#(1.0)) |> should.equal("#(1)") + + // Unlike on Erlang, on JavaScript `BitString` and `String` do have a different runtime representation. + <<"abc":utf8>> + |> string.inspect() + |> should.equal("<<97, 98, 99>>") } } @@ -742,13 +747,13 @@ if erlang { "erlang" "make_ref" pub fn target_inspect_test() { - // Erlang's internal representation does not allow a correct differentiation + // Erlang's internal representation does not allow a correct differentiation. // |> should.equal("#(InspectTypeZero, InspectTypeZero)") // string.inspect(#(InspectTypeZero, InspectTypeZero)) |> should.equal("InspectTypeZero(InspectTypeZero)") - // Unlike JavaScript, Erlang correctly differentiates between 1 and 1.0 + // Unlike JavaScript, Erlang correctly differentiates between `1` and `1.0`. // string.inspect(-1.0) |> should.equal("-1.0") @@ -765,14 +770,14 @@ if erlang { string.inspect(#(1.0)) |> should.equal("#(1.0)") - // Looks like `//erl(<0.83.0>)` + // Looks like `//erl(<0.83.0>)`. assert Ok(regular_expression) = regex.from_string("^\\/\\/erl\\(<[0-9]+\\.[0-9]+\\.[0-9]+>\\)$") string.inspect(create_erlang_pid()) |> regex.check(regular_expression, _) |> should.equal(True) - // Looks like: `//erl(#Ref<0.1809744150.4035444737.100468>)` + // Looks like: `//erl(#Ref<0.1809744150.4035444737.100468>)`. assert Ok(regular_expression) = regex.from_string( "^\\/\\/erl\\(#Ref<[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+>\\)$", @@ -780,5 +785,10 @@ if erlang { string.inspect(create_erlang_reference()) |> regex.check(regular_expression, _) |> should.equal(True) + + // On Erlang the runtime representation for `String` and `BitString` is indistinguishable. + <<"abc":utf8>> + |> string.inspect() + |> should.equal("\"abc\"") } }