From 2d4eeecc1e8643143e791bf6557501ed03a3a8ac Mon Sep 17 00:00:00 2001 From: knu Date: Mon, 15 Jun 2015 05:37:38 +0000 Subject: * lib/set.rb: Make Set#each and SortedSet#each generate a sized enumerator. [GH-931] by kachick (Kenichi Kamiya) * test/test_set.rb: Import tests from Set into SortedSet. [GH-931] by kachick (Kenichi Kamiya) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/test_set.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test') diff --git a/test/test_set.rb b/test/test_set.rb index e9867dd923..854bcc637b 100644 --- a/test/test_set.rb +++ b/test/test_set.rb @@ -364,6 +364,10 @@ class TC_Set < Test::Unit::TestCase ary.empty? or raise "forgotten elements: #{ary.join(', ')}" } + + assert_equal(6, e.size) + set << 42 + assert_equal(7, e.size) end def test_add @@ -669,6 +673,29 @@ class TC_SortedSet < Test::Unit::TestCase assert_equal(['four', 'one', 'three', 'two'], s.to_a) assert_equal(['four', 'one', 'three', 'two'], a) end + + def test_each + ary = [1,3,5,7,10,20] + set = SortedSet.new(ary) + + ret = set.each { |o| } + assert_same(set, ret) + + e = set.each + assert_instance_of(Enumerator, e) + + assert_nothing_raised { + set.each { |o| + ary.delete(o) or raise "unexpected element: #{o}" + } + + ary.empty? or raise "forgotten elements: #{ary.join(', ')}" + } + + assert_equal(6, e.size) + set << 42 + assert_equal(7, e.size) + end end class TC_Enumerable < Test::Unit::TestCase -- cgit v1.2.3