diff options
author | Louis Pilfold <louis@lpil.uk> | 2023-10-26 13:03:22 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2023-10-26 13:07:39 +0100 |
commit | e0cefe61b7519d8356885b941c34bbf4763cb71c (patch) | |
tree | c6dbff1309805ecb6f1b0d9df6cb091552ec6970 /test | |
parent | d55bfcbfc6c6c836013e4b9b45eb70c729d5ca7b (diff) | |
download | gleam_stdlib-e0cefe61b7519d8356885b941c34bbf4763cb71c.tar.gz gleam_stdlib-e0cefe61b7519d8356885b941c34bbf4763cb71c.zip |
Hex!
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/bit_array_test.gleam | 60 |
1 files changed, 60 insertions, 0 deletions
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>>)) +} |