From 6a6d5adf356993031ab2e79012e436dd2567a2f9 Mon Sep 17 00:00:00 2001 From: Richard Viney Date: Fri, 21 Jun 2024 17:01:37 +1200 Subject: Base64 encoding optimisations. Fix encoding of large bit arrays on JS. This native JS implementation is 13-14x faster in simple benchmarks. --- test/gleam/bit_array_test.gleam | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'test') 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() { -- cgit v1.2.3