aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGiacomo Cavalieri <giacomo.cavalieri@icloud.com>2023-06-24 11:18:29 +0200
committerLouis Pilfold <louis@lpil.uk>2023-06-24 12:04:38 +0100
commit26271b6c8165854ddc2d959c7eaf070a6c14da1f (patch)
tree90f3efd5ca9dab07d2015f1fa4aa8b9932dca0f6 /test
parent7999445174abbc3a40913734b2f7131180667e35 (diff)
downloadgleam_stdlib-26271b6c8165854ddc2d959c7eaf070a6c14da1f.tar.gz
gleam_stdlib-26271b6c8165854ddc2d959c7eaf070a6c14da1f.zip
Add `list.map3`
Diffstat (limited to 'test')
-rw-r--r--test/gleam/list_test.gleam23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/gleam/list_test.gleam b/test/gleam/list_test.gleam
index b44c53c..0e3f8a1 100644
--- a/test/gleam/list_test.gleam
+++ b/test/gleam/list_test.gleam
@@ -189,6 +189,29 @@ pub fn map2_test() {
list.map2(list, list, int.add)
}
+pub fn map3_test() {
+ let add3 = fn(x, y, z) { x + y + z }
+
+ list.map3([], [1, 2, 3], [4, 5, 6], add3)
+ |> should.equal([])
+
+ list.map3([1, 2, 3], [], [4, 5, 6], add3)
+ |> should.equal([])
+
+ list.map3([1, 2, 3], [4, 5, 6], [], add3)
+ |> should.equal([])
+
+ list.map3([1, 2, 3], [4, 5], [6], add3)
+ |> should.equal([11])
+
+ list.map3([1, 2, 3], [4, 5, 6], [7, 8, 9], add3)
+ |> should.equal([12, 15, 18])
+
+ // TCO test
+ let list = list.repeat(0, recursion_test_cycles)
+ list.map3(list, list, list, add3)
+}
+
pub fn map_fold_test() {
[1, 2, 3, 4]
|> list.map_fold(from: 0, with: fn(acc, i) { #(acc + i, i * 2) })