aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2023-10-19 22:22:51 +0100
committerLouis Pilfold <louis@lpil.uk>2023-10-26 12:24:40 +0100
commit0831802978afac21d7d3b397d83715e46799e30c (patch)
tree44b6b1c371c672450c56a005decb0bc66818e28c /test
parentb713e6fd185ad8b4da90f4b686aa9ecf0f60f0e4 (diff)
downloadgleam_stdlib-0831802978afac21d7d3b397d83715e46799e30c.tar.gz
gleam_stdlib-0831802978afac21d7d3b397d83715e46799e30c.zip
bytes_builder
Diffstat (limited to 'test')
-rw-r--r--test/gleam/bytes_builder_test.gleam94
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"))
+}