aboutsummaryrefslogtreecommitdiff
path: root/test/std/list_test.gleam
diff options
context:
space:
mode:
Diffstat (limited to 'test/std/list_test.gleam')
-rw-r--r--test/std/list_test.gleam351
1 files changed, 0 insertions, 351 deletions
diff --git a/test/std/list_test.gleam b/test/std/list_test.gleam
deleted file mode 100644
index 9e27d22..0000000
--- a/test/std/list_test.gleam
+++ /dev/null
@@ -1,351 +0,0 @@
-import std/expect
-import std/list
-import std/int
-import std/string
-
-pub fn length_test() {
- list:length([]) |> expect:equal(_, 0)
- list:length([1]) |> expect:equal(_, 1)
- list:length([1, 1]) |> expect:equal(_, 2)
- list:length([1, 1, 1]) |> expect:equal(_, 3)
-}
-
-pub fn reverse_test() {
- list:reverse([]) |> expect:equal(_, [])
- list:reverse([1, 2, 3, 4, 5]) |> expect:equal(_, [5, 4, 3, 2, 1])
-}
-
-pub fn is_empty_test() {
- list:is_empty([]) |> expect:true
- list:is_empty([1]) |> expect:false
-}
-
-pub fn contains_test() {
- list:contains([0, 4, 5, 1], 1) |> expect:true
- list:contains([0, 4, 5, 7], 1) |> expect:false
- list:contains([], 1) |> expect:false
-}
-
-pub fn head_test() {
- list:head([0, 4, 5, 7])
- |> expect:equal(_, Ok(0))
-
- list:head([])
- |> expect:is_error
-}
-
-pub fn tail_test() {
- list:tail([0, 4, 5, 7])
- |> expect:equal(_, Ok([4, 5, 7]))
-
- list:tail([0])
- |> expect:equal(_, Ok([]))
-
- list:tail([])
- |> expect:is_error
-}
-
-pub fn filter_test() {
- []
- |> list:filter(_, fn(_) { True })
- |> expect:equal(_, [])
-
- [0, 4, 5, 7, 3]
- |> list:filter(_, fn(_) { True })
- |> expect:equal(_, [0, 4, 5, 7, 3])
-
- [0, 4, 5, 7, 3]
- |> list:filter(_, fn(x) { x > 4 })
- |> expect:equal(_, [5, 7])
-
- [0, 4, 5, 7, 3]
- |> list:filter(_, fn(x) { x < 4 })
- |> expect:equal(_, [0, 3])
-}
-
-pub fn map_test() {
- []
- |> list:map(_, fn(x) { x * 2 })
- |> expect:equal(_, [])
-
- [0, 4, 5, 7, 3]
- |> list:map(_, fn(x) { x * 2 })
- |> expect:equal(_, [0, 8, 10, 14, 6])
-}
-
-pub fn traverse_test() {
- let fun = fn(x) {
- case x == 6 || x == 5 || x == 4 {
- | True -> Ok(x * 2)
- | False -> Error(x)
- }
- }
-
- [5, 6, 5, 6]
- |> list:traverse(_, fun)
- |> expect:equal(_, Ok([10, 12, 10, 12]))
-
- [4, 6, 5, 7, 3]
- |> list:traverse(_, fun)
- |> expect:equal(_, Error(7))
-}
-
-pub fn drop_test() {
- []
- |> list:drop(_, 5)
- |> expect:equal(_, [])
-
- [1, 2, 3, 4, 5, 6, 7, 8]
- |> list:drop(_, 5)
- |> expect:equal(_, [6, 7, 8])
-}
-
-pub fn take_test() {
- []
- |> list:take(_, 5)
- |> expect:equal(_, [])
- [1, 2, 3, 4, 5, 6, 7, 8]
- |> list:take(_, 5)
- |> expect:equal(_, [1, 2, 3, 4, 5])
-}
-
-pub fn new_test() {
- list:new() |> expect:equal(_, [])
-}
-
-pub fn append_test() {
- list:append([1], [2, 3])
- |> expect:equal(_, [1, 2, 3])
-}
-
-pub fn flatten_test() {
- list:flatten([])
- |> expect:equal(_, [])
-
- list:flatten([[]])
- |> expect:equal(_, [])
-
- list:flatten([[], [], []])
- |> expect:equal(_, [])
-
- list:flatten([[1, 2], [], [3, 4]])
- |> expect:equal(_, [1, 2, 3, 4])
-}
-
-pub fn fold_test() {
- [1, 2, 3]
- |> list:fold(_, [], fn(x, acc) { [x | acc] })
- |> expect:equal(_, [3, 2, 1])
-}
-
-pub fn fold_right_test() {
- [1, 2, 3]
- |> list:fold_right(_, [], fn(x, acc) { [x | acc] })
- |> expect:equal(_, [1, 2, 3])
-}
-
-pub fn find_test() {
- let f = fn(x) {
- case x {
- | 2 -> Ok(4)
- | _ -> Error(0)
- }
- }
-
- [1, 2, 3]
- |> list:find(_, f)
- |> expect:equal(_, Ok(4))
-
- [1, 3, 2]
- |> list:find(_, f)
- |> expect:equal(_, Ok(4))
-
- [1, 3]
- |> list:find(_, f)
- |> expect:is_error
-}
-
-pub fn all_test() {
- list:all([1, 2, 3, 4, 5], fn(x) { x > 0 })
- |> expect:equal(_, True)
-
- list:all([1, 2, 3, 4, 5], fn(x) { x < 0 })
- |> expect:equal(_, False)
-
- list:all([], fn(_) { False })
- |> expect:equal(_, True)
-}
-
-pub fn any_test() {
- list:any([1, 2, 3, 4, 5], fn(x) { x == 2 })
- |> expect:equal(_, True)
-
- list:any([1, 2, 3, 4, 5], fn(x) { x < 0 })
- |> expect:equal(_, False)
-
- list:any([], fn(_) { False })
- |> expect:equal(_, False)
-}
-
-pub fn zip_test() {
- list:zip([], [1, 2, 3])
- |> expect:equal(_, [])
-
- list:zip([1, 2], [])
- |> expect:equal(_, [])
-
- list:zip([1, 2, 3], [4, 5, 6])
- |> expect:equal(_, [{1, 4}, {2, 5}, {3, 6}])
-
- list:zip([5, 6], [1, 2, 3])
- |> expect:equal(_, [{5, 1}, {6, 2}])
-
- list:zip([5, 6, 7], [1, 2])
- |> expect:equal(_, [{5, 1}, {6, 2}])
-}
-
-pub fn strict_zip_test() {
- list:strict_zip([], [1, 2, 3])
- |> expect:is_error
-
- list:strict_zip([1, 2], [])
- |> expect:is_error
-
- list:strict_zip([1, 2, 3], [4, 5, 6])
- |> expect:equal(_, Ok([{1, 4}, {2, 5}, {3, 6}]))
-
- list:strict_zip([5, 6], [1, 2, 3])
- |> expect:is_error
-
- list:strict_zip([5, 6, 7], [1, 2])
- |> expect:is_error
-}
-
-pub fn intersperse_test() {
- list:intersperse([1, 2, 3], 4)
- |> expect:equal(_, [1, 4, 2, 4, 3])
-
- list:intersperse([], 2)
- |> expect:equal(_, [])
-}
-
-pub fn at_test() {
- list:at([1, 2, 3], 2)
- |> expect:equal(_, Ok(3))
-
- list:at([1, 2, 3], 5)
- |> expect:is_error
-
- list:at([], 0)
- |> expect:is_error
-
- list:at([1, 2, 3, 4, 5, 6], -1)
- |> expect:is_error
-}
-
-pub fn unique_test() {
- list:unique([1, 1, 2, 3, 4, 4, 4, 5, 6])
- |> expect:equal(_, [1, 2, 3, 4, 5, 6])
-
- list:unique([7, 1, 45, 6, 2, 47, 2, 7, 5])
- |> expect:equal(_, [7, 1, 45, 6, 2, 47, 5])
-
- list:unique([3, 4, 5])
- |> expect:equal(_, [3, 4, 5])
-
- list:unique([])
- |> expect:equal(_, [])
-}
-
-pub fn sort_test() {
- list:sort([4, 3, 6, 5, 4])
- |> expect:equal(_, [3, 4, 4, 5, 6])
-
- list:sort([])
- |> expect:equal(_, [])
-
- list:sort([{1, 2}, {4, 5}, {3, 2}])
- |> expect:equal(_, [{1, 2}, {3, 2}, {4, 5}])
-}
-
-pub fn index_map_test() {
- list:index_map([3, 4, 5], fn(i, x) { {i, x} })
- |> expect:equal(_, [{0, 3}, {1, 4}, {2, 5}])
-
- let f = fn(i, x) {
- string:append(x, int:to_string(i))
- }
- list:index_map(["a", "b", "c"], f)
- |> expect:equal(_, ["a0", "b1", "c2"])
-}
-
-pub fn range_test() {
- list:range(0, 0)
- |> expect:equal(_, [])
-
- list:range(1, 1)
- |> expect:equal(_, [])
-
- list:range(-1, -1)
- |> expect:equal(_, [])
-
- list:range(0, 1)
- |> expect:equal(_, [0])
-
- list:range(0, 5)
- |> expect:equal(_, [0, 1, 2, 3, 4])
-
- list:range(1, -5)
- |> expect:equal(_, [1, 0, -1, -2, -3, -4])
-}
-
-pub fn repeat_test() {
- list:repeat(1, -10)
- |> expect:equal(_, [])
-
- list:repeat(1, 0)
- |> expect:equal(_, [])
-
- list:repeat(2, 3)
- |> expect:equal(_, [2, 2, 2])
-
- list:repeat("x", 5)
- |> expect:equal(_, ["x", "x", "x", "x", "x"])
-}
-
-pub fn split_test() {
- list:split([], 0)
- |> expect:equal(_, {[], []})
-
- list:split([0, 1, 2, 3, 4], 0)
- |> expect:equal(_, {[], [0, 1, 2, 3, 4]})
-
- list:split([0, 1, 2, 3, 4], -2)
- |> expect:equal(_, {[], [0, 1, 2, 3, 4]})
-
- list:split([0, 1, 2, 3, 4], 1)
- |> expect:equal(_, {[0], [1, 2, 3, 4]})
-
- list:split([0, 1, 2, 3, 4], 3)
- |> expect:equal(_, {[0, 1, 2], [3, 4]})
-
- list:split([0, 1, 2, 3, 4], 9)
- |> expect:equal(_, {[0, 1, 2, 3, 4], []})
-}
-
-pub fn split_while_test() {
- list:split_while([], fn(x) { x <= 5 })
- |> expect:equal(_, {[], []})
-
- list:split_while([1, 2, 3, 4, 5], fn(x) { x <= 5 })
- |> expect:equal(_, {[1, 2, 3, 4, 5], []})
-
- list:split_while([1, 2, 3, 4, 5], fn(x) { x == 2 })
- |> expect:equal(_, {[], [1, 2, 3, 4, 5]})
-
- list:split_while([1, 2, 3, 4, 5], fn(x) { x <= 3 })
- |> expect:equal(_, {[1, 2, 3], [4, 5]})
-
- list:split_while([1, 2, 3, 4, 5], fn(x) { x <= -3 })
- |> expect:equal(_, {[], [1, 2, 3, 4, 5]})
-}