mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* test/ruby/test_array.rb: add a test for Array#rotate, rotate!.
* test/ruby/test_dir.rb, test/ruby/test_fnmatch.rb: add some tests (for coverage of dir.c). * test/ruby/test_enum.rb: add a test for Enumerable#minmax. * test/ruby/test_enumerator.rb: add some tests for Enumerator#inspect, Enumerator::Generator and Yielder. * test/ruby/test_env.rb: add a test for ENV#index. * test/ruby/test_exception.rb: add some tests (for coverage of error.c). * test/ruby/test_hash.rb: add a test for recursive check. * test/ruby/test_integer.rb: add a test for number of argument of Integer. * test/ruby/test_method.rb: add a test for define_method. * test/ruby/test_module.rb: add a test for constant of included module. * test/ruby/test_proc.rb: add a test for parameters with cfunc. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d8d5e67184
commit
bebd7e4511
13 changed files with 205 additions and 5 deletions
|
@ -332,6 +332,46 @@ class TestEnumerator < Test::Unit::TestCase
|
|||
assert_equal(10, exc.result)
|
||||
end
|
||||
|
||||
def test_inspect
|
||||
e = (0..10).each_cons(2)
|
||||
assert_equal("#<Enumerator: 0..10:each_cons(2)>", e.inspect)
|
||||
|
||||
e = Enumerator.new {|y| x = y.yield; 10 }
|
||||
assert_match(/\A#<Enumerator: .*:each>/, e.inspect)
|
||||
|
||||
a = []
|
||||
e = a.each_with_object(a)
|
||||
a << e
|
||||
assert_equal("#<Enumerator: [#<Enumerator: ...>]:each_with_object([#<Enumerator: ...>])>",
|
||||
e.inspect)
|
||||
end
|
||||
|
||||
def test_generator
|
||||
# note: Enumerator::Generator is a class just for internal
|
||||
g = Enumerator::Generator.new {|y| y << 1 << 2 << 3; :foo }
|
||||
g2 = g.dup
|
||||
a = []
|
||||
assert_equal(:foo, g.each {|x| a << x })
|
||||
assert_equal([1, 2, 3], a)
|
||||
a = []
|
||||
assert_equal(:foo, g2.each {|x| a << x })
|
||||
assert_equal([1, 2, 3], a)
|
||||
end
|
||||
|
||||
def test_yielder
|
||||
# note: Enumerator::Yielder is a class just for internal
|
||||
a = []
|
||||
y = Enumerator::Yielder.new {|x| a << x }
|
||||
assert_equal(y, y << 1 << 2 << 3)
|
||||
assert_equal([1, 2, 3], a)
|
||||
|
||||
a = []
|
||||
y = Enumerator::Yielder.new {|x| a << x }
|
||||
assert_equal([1], y.yield(1))
|
||||
assert_equal([1, 2], y.yield(2))
|
||||
assert_equal([1, 2, 3], y.yield(3))
|
||||
|
||||
assert_raise(LocalJumpError) { Enumerator::Yielder.new }
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue