aboutsummaryrefslogtreecommitdiffstats
path: root/test/ruby/test_enumerator.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_enumerator.rb')
-rw-r--r--test/ruby/test_enumerator.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/ruby/test_enumerator.rb b/test/ruby/test_enumerator.rb
index 10ba2f184e..a1ad22160c 100644
--- a/test/ruby/test_enumerator.rb
+++ b/test/ruby/test_enumerator.rb
@@ -238,6 +238,18 @@ class TestEnumerator < Test::Unit::TestCase
assert_equal([1,2], e.next_values)
end
+ def test_each_arg
+ o = Object.new
+ def o.each(ary)
+ ary << 1
+ yield
+ end
+ ary = []
+ e = o.to_enum.each(ary)
+ e.next
+ assert_equal([1], ary)
+ end
+
def test_feed
o = Object.new
def o.each(ary)
@@ -358,6 +370,13 @@ class TestEnumerator < Test::Unit::TestCase
assert_equal([1, 2, 3], a)
end
+ def test_generator_args
+ g = Enumerator::Generator.new {|y, x| y << 1 << 2 << 3; x }
+ a = []
+ assert_equal(:bar, g.each(:bar) {|x| a << x })
+ assert_equal([1, 2, 3], a)
+ end
+
def test_yielder
# note: Enumerator::Yielder is a class just for internal
a = []