Merge pull request #6171 from buty4649/add-enumrable-lazy-grep_v

Add Enumerable::Lazy#grep_v to mruby-enum-lazy
This commit is contained in:
Yukihiro "Matz" Matsumoto
2024-02-15 15:49:30 +09:00
committed by GitHub
2 changed files with 15 additions and 0 deletions
+9
View File
@@ -10,6 +10,7 @@ module Enumerable
# - select find_all
# - reject
# - grep
# - grep_v
# - drop
# - drop_while
# - take_while
@@ -89,6 +90,14 @@ class Enumerator
}
end
def grep_v(pattern)
Lazy.new(self){|yielder, val|
unless pattern === val
yielder << val
end
}
end
def drop(n)
dropped = 0
Lazy.new(self){|yielder, val|
+6
View File
@@ -46,6 +46,12 @@ assert("Enumerator::Lazy#to_enum") do
assert_equal [0*1, 2*3, 4*5, 6*7], lazy_enum.map { |a| a.first * a.last }.first(4)
end
assert("Enumerator::Lazy#grep_v") do
lazy_grep_v = (0..).lazy.grep_v(2..4)
assert_kind_of Enumerator::Lazy, lazy_grep_v
assert_equal [0, 1, 5, 6], lazy_grep_v.first(4)
end
assert("Enumerator::Lazy#zip with cycle") do
e1 = [1, 2, 3].cycle
e2 = [:a, :b].cycle