aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2023-10-26 13:03:22 +0100
committerLouis Pilfold <louis@lpil.uk>2023-10-26 13:07:39 +0100
commite0cefe61b7519d8356885b941c34bbf4763cb71c (patch)
treec6dbff1309805ecb6f1b0d9df6cb091552ec6970 /test
parentd55bfcbfc6c6c836013e4b9b45eb70c729d5ca7b (diff)
downloadgleam_stdlib-e0cefe61b7519d8356885b941c34bbf4763cb71c.tar.gz
gleam_stdlib-e0cefe61b7519d8356885b941c34bbf4763cb71c.zip
Hex!
Diffstat (limited to 'test')
-rw-r--r--test/gleam/bit_array_test.gleam60
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>>))
+}