From e0cefe61b7519d8356885b941c34bbf4763cb71c Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Thu, 26 Oct 2023 13:03:22 +0100 Subject: Hex! --- test/gleam/bit_array_test.gleam | 60 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) (limited to 'test') diff --git a/test/gleam/bit_array_test.gleam b/test/gleam/bit_array_test.gleam index 7095205..903b0c8 100644 --- a/test/gleam/bit_array_test.gleam +++ b/test/gleam/bit_array_test.gleam @@ -219,3 +219,63 @@ pub fn decode64_crash_regression_1_test() { |> bit_array.base64_decode() |> should.equal(Error(Nil)) } + +pub fn base16_test() { + bit_array.base16_encode(<<"":utf8>>) + |> should.equal("") + + bit_array.base16_encode(<<"f":utf8>>) + |> should.equal("66") + + bit_array.base16_encode(<<"fo":utf8>>) + |> should.equal("666F") + + bit_array.base16_encode(<<"foo":utf8>>) + |> should.equal("666F6F") + + bit_array.base16_encode(<<"foob":utf8>>) + |> should.equal("666F6F62") + + bit_array.base16_encode(<<"fooba":utf8>>) + |> should.equal("666F6F6261") + + bit_array.base16_encode(<<"foobar":utf8>>) + |> should.equal("666F6F626172") + + bit_array.base16_encode(<<161, 178, 195, 212, 229, 246, 120, 145>>) + |> should.equal("A1B2C3D4E5F67891") +} + +pub fn base16_decode_test() { + bit_array.base16_decode("") + |> should.equal(Ok(<<>>)) + + bit_array.base16_decode("66") + |> should.equal(Ok(<<"f":utf8>>)) + + bit_array.base16_decode("666F") + |> should.equal(Ok(<<"fo":utf8>>)) + + bit_array.base16_decode("666F6F") + |> should.equal(Ok(<<"foo":utf8>>)) + + bit_array.base16_decode("666F6F62") + |> should.equal(Ok(<<"foob":utf8>>)) + + bit_array.base16_decode("666F6F6261") + |> should.equal(Ok(<<"fooba":utf8>>)) + + bit_array.base16_decode("666F6F626172") + |> should.equal(Ok(<<"foobar":utf8>>)) + + bit_array.base16_decode("A1B2C3D4E5F67891") + |> should.equal(Ok(<<161, 178, 195, 212, 229, 246, 120, 145>>)) + + // Not a hex string + bit_array.base16_decode("?") + |> should.equal(Error(Nil)) + + // Lowercase hex + bit_array.base16_decode("a1b2c3d4e5f67891") + |> should.equal(Ok(<<161, 178, 195, 212, 229, 246, 120, 145>>)) +} -- cgit v1.2.3