aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRichard Viney <richard.viney@gmail.com>2024-06-21 17:01:37 +1200
committerLouis Pilfold <louis@lpil.uk>2024-06-21 10:49:14 +0100
commit6a6d5adf356993031ab2e79012e436dd2567a2f9 (patch)
treea1da55c581271e0160b47e3be35211f456719099 /test
parentddd52834c46a9e8c608cbdc347a71b9ceeb361df (diff)
downloadgleam_stdlib-6a6d5adf356993031ab2e79012e436dd2567a2f9.tar.gz
gleam_stdlib-6a6d5adf356993031ab2e79012e436dd2567a2f9.zip
Base64 encoding optimisations. Fix encoding of large bit arrays on JS.
This native JS implementation is 13-14x faster in simple benchmarks.
Diffstat (limited to 'test')
-rw-r--r--test/gleam/bit_array_test.gleam11
1 files changed, 11 insertions, 0 deletions
diff --git a/test/gleam/bit_array_test.gleam b/test/gleam/bit_array_test.gleam
index 7c4a5f4..1c3e7db 100644
--- a/test/gleam/bit_array_test.gleam
+++ b/test/gleam/bit_array_test.gleam
@@ -1,6 +1,7 @@
import gleam/bit_array
import gleam/result
import gleam/should
+import gleam/string
pub fn byte_size_test() {
bit_array.byte_size(bit_array.from_string("hello"))
@@ -145,6 +146,10 @@ pub fn base64_encode_test() {
|> bit_array.base64_encode(True)
|> should.equal("/3/+/A==")
+ <<255, 127, 254, 252, 100>>
+ |> bit_array.base64_encode(True)
+ |> should.equal("/3/+/GQ=")
+
<<255, 127, 254, 252>>
|> bit_array.base64_encode(False)
|> should.equal("/3/+/A")
@@ -156,6 +161,12 @@ pub fn base64_encode_test() {
<<>>
|> bit_array.base64_encode(True)
|> should.equal("")
+
+ string.repeat("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", 1024 * 32)
+ |> bit_array.from_string
+ |> bit_array.base64_encode(True)
+ |> string.length
+ |> should.equal(1_398_104)
}
pub fn base64_decode_test() {