aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDanik Vitek <x3665107@gmail.com>2024-03-17 21:57:31 +0200
committerLouis Pilfold <louis@lpil.uk>2024-03-18 15:12:18 +0000
commit2427639f3a5f4495a14d6d766e518589970c632a (patch)
tree009a34ae46dcf341d49c6048448655a709c2ac91 /test
parent0c2faa96418c6a6e4c76a6f87eba265a35e8e3b7 (diff)
downloadgleam_stdlib-2427639f3a5f4495a14d6d766e518589970c632a.tar.gz
gleam_stdlib-2427639f3a5f4495a14d6d766e518589970c632a.zip
Implement `iterator.filter_map`
Diffstat (limited to 'test')
-rw-r--r--test/gleam/iterator_test.gleam19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/gleam/iterator_test.gleam b/test/gleam/iterator_test.gleam
index 189f283..bc024a9 100644
--- a/test/gleam/iterator_test.gleam
+++ b/test/gleam/iterator_test.gleam
@@ -2,6 +2,7 @@ import gleam/iterator.{Done, Next}
import gleam/list
import gleam/dict
import gleam/should
+import gleam/int
// a |> from_list |> to_list == a
pub fn to_from_list_test() {
@@ -272,6 +273,24 @@ pub fn filter_test() {
testcase([1, 2, 3, 4, 5, 6], even)
}
+pub fn filter_map_test() {
+ let testcase = fn(subject, f) {
+ subject
+ |> iterator.from_list
+ |> iterator.filter_map(f)
+ |> iterator.to_list
+ |> should.equal(list.filter_map(subject, f))
+ }
+
+ testcase([], int.parse)
+ testcase(["1"], int.parse)
+ testcase(["1", "2", "3"], int.parse)
+ testcase(["1", "a", "b"], int.parse)
+ testcase(["l", "2", "3", "a"], int.parse)
+ testcase(["1", "c", "3", "a", "b"], int.parse)
+ testcase(["1", "20", "ten", "4", "5", "69"], int.parse)
+}
+
pub fn repeat_test() {
1
|> iterator.repeat