diff options
author | Louis Pilfold <louis@lpil.uk> | 2023-10-19 22:22:51 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2023-10-26 12:24:40 +0100 |
commit | 0831802978afac21d7d3b397d83715e46799e30c (patch) | |
tree | 44b6b1c371c672450c56a005decb0bc66818e28c /test | |
parent | b713e6fd185ad8b4da90f4b686aa9ecf0f60f0e4 (diff) | |
download | gleam_stdlib-0831802978afac21d7d3b397d83715e46799e30c.tar.gz gleam_stdlib-0831802978afac21d7d3b397d83715e46799e30c.zip |
bytes_builder
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/bytes_builder_test.gleam | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/test/gleam/bytes_builder_test.gleam b/test/gleam/bytes_builder_test.gleam new file mode 100644 index 0000000..acea7ab --- /dev/null +++ b/test/gleam/bytes_builder_test.gleam @@ -0,0 +1,94 @@ +import gleam/bytes_builder +import gleam/string_builder +import gleam/should + +pub fn builder_test() { + let data = + bytes_builder.from_bit_array(<<1>>) + |> bytes_builder.append(<<2>>) + |> bytes_builder.append(<<3>>) + |> bytes_builder.prepend(<<0>>) + + data + |> bytes_builder.to_bit_array + |> should.equal(<<0, 1, 2, 3>>) + + data + |> bytes_builder.byte_size + |> should.equal(4) +} + +pub fn builder_with_strings_test() { + let data = + bytes_builder.from_bit_array(<<1>>) + |> bytes_builder.append_string("2") + |> bytes_builder.append_string("3") + |> bytes_builder.prepend_string("0") + + data + |> bytes_builder.to_bit_array + |> should.equal(<<"0":utf8, 1, "2":utf8, "3":utf8>>) + + data + |> bytes_builder.byte_size + |> should.equal(4) +} + +pub fn builder_with_builders_test() { + let data = + bytes_builder.from_bit_array(<<1>>) + |> bytes_builder.append_builder(bytes_builder.from_bit_array(<<2>>)) + |> bytes_builder.append_builder(bytes_builder.from_bit_array(<<3>>)) + |> bytes_builder.prepend_builder(bytes_builder.from_bit_array(<<0>>)) + + data + |> bytes_builder.to_bit_array + |> should.equal(<<0, 1, 2, 3>>) + + data + |> bytes_builder.byte_size + |> should.equal(4) +} + +pub fn concat_test() { + [ + bytes_builder.from_bit_array(<<1, 2>>), + bytes_builder.from_bit_array(<<3, 4>>), + bytes_builder.from_bit_array(<<5, 6>>), + ] + |> bytes_builder.concat + |> bytes_builder.to_bit_array + |> should.equal(<<1, 2, 3, 4, 5, 6>>) +} + +pub fn concat_bit_strings_test() { + bytes_builder.concat_bit_arrays([<<"h":utf8>>, <<"e":utf8>>, <<"y":utf8>>]) + |> bytes_builder.to_bit_array + |> should.equal(<<"hey":utf8>>) +} + +pub fn from_bit_array() { + // Regression test: no additional modification of the builder + bytes_builder.from_bit_array(<<>>) + |> bytes_builder.to_bit_array + |> should.equal(<<>>) +} + +pub fn from_string_test() { + // Regression test: no additional modification of the builder + bytes_builder.from_string("") + |> bytes_builder.to_bit_array + |> should.equal(<<>>) +} + +pub fn new_test() { + bytes_builder.new() + |> bytes_builder.to_bit_array + |> should.equal(<<>>) +} + +pub fn from_string_builder_test() { + string_builder.from_string("hello") + |> bytes_builder.from_string_builder + |> should.equal(bytes_builder.from_string("hello")) +} |