aboutsummaryrefslogtreecommitdiff
path: root/test/gleam/string_tree_test.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'test/gleam/string_tree_test.gleam')
-rw-r--r--test/gleam/string_tree_test.gleam149
1 files changed, 149 insertions, 0 deletions
diff --git a/test/gleam/string_tree_test.gleam b/test/gleam/string_tree_test.gleam
new file mode 100644
index 0000000..f2f14e3
--- /dev/null
+++ b/test/gleam/string_tree_test.gleam
@@ -0,0 +1,149 @@
+import gleam/should
+import gleam/string_tree
+
+pub fn string_tree_test() {
+ let data =
+ string_tree.from_string("ello")
+ |> string_tree.append(",")
+ |> string_tree.append(" world!")
+ |> string_tree.prepend("H")
+
+ data
+ |> string_tree.to_string
+ |> should.equal("Hello, world!")
+
+ data
+ |> string_tree.byte_size
+ |> should.equal(13)
+
+ let data =
+ string_tree.from_string("ello")
+ |> string_tree.append_tree(string_tree.from_string(","))
+ |> string_tree.append_tree(
+ string_tree.concat([
+ string_tree.from_string(" wo"),
+ string_tree.from_string("rld!"),
+ ]),
+ )
+ |> string_tree.prepend_tree(string_tree.from_string("H"))
+
+ data
+ |> string_tree.to_string
+ |> should.equal("Hello, world!")
+
+ data
+ |> string_tree.byte_size
+ |> should.equal(13)
+}
+
+pub fn reverse_test() {
+ "Ĺo͂řȩm̅"
+ |> string_tree.from_string
+ |> string_tree.reverse
+ |> string_tree.reverse
+ |> string_tree.to_string
+ |> should.equal("Ĺo͂řȩm̅")
+
+ "Ĺo͂řȩm̅"
+ |> string_tree.from_string
+ |> string_tree.reverse
+ |> string_tree.to_string
+ |> should.equal("m̅ȩřo͂Ĺ")
+
+ "👶🏿"
+ |> string_tree.from_string
+ |> string_tree.reverse
+ |> string_tree.reverse
+ |> string_tree.to_string
+ |> should.equal("👶🏿")
+
+ "👶🏿"
+ |> string_tree.from_string
+ |> string_tree.reverse
+ |> string_tree.to_string
+ |> should.equal("👶🏿")
+}
+
+pub fn lowercase_test() {
+ ["Gleam", "Gleam"]
+ |> string_tree.from_strings
+ |> string_tree.lowercase
+ |> string_tree.to_string
+ |> should.equal("gleamgleam")
+}
+
+pub fn uppercase_test() {
+ ["Gleam", "Gleam"]
+ |> string_tree.from_strings
+ |> string_tree.uppercase
+ |> string_tree.to_string
+ |> should.equal("GLEAMGLEAM")
+}
+
+pub fn split_test() {
+ "Gleam,Erlang,Elixir"
+ |> string_tree.from_string
+ |> string_tree.split(",")
+ |> should.equal([
+ string_tree.from_string("Gleam"),
+ string_tree.from_string("Erlang"),
+ string_tree.from_string("Elixir"),
+ ])
+
+ ["Gleam, Erl", "ang,Elixir"]
+ |> string_tree.from_strings
+ |> string_tree.split(", ")
+ |> should.equal([
+ string_tree.from_string("Gleam"),
+ string_tree.from_strings(["Erl", "ang,Elixir"]),
+ ])
+}
+
+pub fn is_equal_test() {
+ string_tree.from_string("12")
+ |> string_tree.is_equal(string_tree.from_strings(["1", "2"]))
+ |> should.be_true
+
+ string_tree.from_string("12")
+ |> string_tree.is_equal(string_tree.from_string("12"))
+ |> should.be_true
+
+ string_tree.from_string("12")
+ |> string_tree.is_equal(string_tree.from_string("2"))
+ |> should.be_false
+}
+
+pub fn is_empty_test() {
+ string_tree.from_string("")
+ |> string_tree.is_empty
+ |> should.be_true
+
+ string_tree.from_string("12")
+ |> string_tree.is_empty
+ |> should.be_false
+
+ string_tree.from_strings([])
+ |> string_tree.is_empty
+ |> should.be_true
+
+ string_tree.from_strings(["", ""])
+ |> string_tree.is_empty
+ |> should.be_true
+}
+
+pub fn new_test() {
+ string_tree.new()
+ |> string_tree.to_string
+ |> should.equal("")
+}
+
+pub fn join_test() {
+ [
+ string_tree.from_string("Gleam"),
+ string_tree.from_string("Elixir"),
+ string_tree.from_string("Erlang"),
+ ]
+ |> string_tree.join(", ")
+ |> string_tree.to_string
+ |> should.equal("Gleam, Elixir, Erlang")
+}