mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* enumerator.c (lazy_zip, lazy_cycle): Enumerator::Lazy#{zip,cycle}
should be eager when a block is given, to be consistent with Enumerable#{zip,cycle}. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
ff1f6107f9
commit
032861ade7
3 changed files with 28 additions and 27 deletions
|
@ -139,9 +139,12 @@ class TestLazyEnumerator < Test::Unit::TestCase
|
|||
end
|
||||
|
||||
def test_zip_with_block
|
||||
# zip should be eager when a block is given
|
||||
a = Step.new(1..3)
|
||||
assert_equal(["a", 1], a.lazy.zip("a".."c") {|x, y| [y, x]}.first)
|
||||
assert_equal(1, a.current)
|
||||
ary = []
|
||||
assert_equal(nil, a.lazy.zip("a".."c") {|x, y| ary << [x, y]})
|
||||
assert_equal(a.zip("a".."c"), ary)
|
||||
assert_equal(3, a.current)
|
||||
end
|
||||
|
||||
def test_take
|
||||
|
@ -190,8 +193,15 @@ class TestLazyEnumerator < Test::Unit::TestCase
|
|||
assert_equal(3, a.current)
|
||||
assert_equal("1", a.lazy.cycle(2).map(&:to_s).first)
|
||||
assert_equal(1, a.current)
|
||||
assert_equal("1", a.lazy.cycle(2, &:to_s).first)
|
||||
assert_equal(1, a.current)
|
||||
end
|
||||
|
||||
def test_cycle_with_block
|
||||
# cycle should be eager when a block is given
|
||||
a = Step.new(1..3)
|
||||
ary = []
|
||||
assert_equal(nil, a.lazy.cycle(2) {|i| ary << i})
|
||||
assert_equal(a.cycle(2).to_a, ary)
|
||||
assert_equal(3, a.current)
|
||||
end
|
||||
|
||||
def test_force
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue