summaryrefslogtreecommitdiff
path: root/test/ruby/test_enum.rb
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-02-14 15:45:11 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-02-14 15:45:11 +0000
commitf526784e1ee21f6d2b5d130673f5c3d96761f2bb (patch)
tree4cda7a4eb87c0458aa5da95825ce428d0db96e17 /test/ruby/test_enum.rb
parentab9bc151e828843b9d9170754f4ba4d92ef85750 (diff)
* enum.c: Enumerable#{min,min_by,max,max_by} extended to take an
optional argument. (nmin_cmp): New function. (nmin_block_cmp): Ditto (nmin_filter): Ditto. (nmin_i): Ditto. (nmin_run): Ditto. (enum_min): Call nmin_run if the optional argument is given. (nmin_max): Ditto. (nmin_min_by): Ditto. (nmin_max_by): Ditto. * range.c: Range#{min,max} extended to take an optional argument. (range_min): Call range_first if the optional argument is given. (range_max): Call rb_call_super if the optional argument is given. [ruby-core:57111] [Feature #8887] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby/test_enum.rb')
-rw-r--r--test/ruby/test_enum.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/ruby/test_enum.rb b/test/ruby/test_enum.rb
index 3ee6846b33..20800cdd61 100644
--- a/test/ruby/test_enum.rb
+++ b/test/ruby/test_enum.rb
@@ -209,6 +209,9 @@ class TestEnumerable < Test::Unit::TestCase
assert_equal("albatross", ary.min)
assert_equal("dog", ary.min {|a,b| a.length <=> b.length })
assert_equal(1, [3,2,1].min)
+ assert_equal(%w[albatross dog], ary.min(2))
+ assert_equal(%w[dog horse],
+ ary.min(2) {|a,b| a.length <=> b.length })
end
def test_max
@@ -218,6 +221,9 @@ class TestEnumerable < Test::Unit::TestCase
assert_equal("horse", ary.max)
assert_equal("albatross", ary.max {|a,b| a.length <=> b.length })
assert_equal(1, [3,2,1].max{|a,b| b <=> a })
+ assert_equal(%w[dog horse], ary.max(2))
+ assert_equal(%w[horse albatross],
+ ary.max(2) {|a,b| a.length <=> b.length })
end
def test_minmax
@@ -236,6 +242,7 @@ class TestEnumerable < Test::Unit::TestCase
a = %w(albatross dog horse)
assert_equal("dog", a.min_by {|x| x.length })
assert_equal(3, [2,3,1].min_by {|x| -x })
+ assert_equal(%w[dog horse], a.min_by(2) {|x| x.length })
end
def test_max_by
@@ -243,6 +250,7 @@ class TestEnumerable < Test::Unit::TestCase
a = %w(albatross dog horse)
assert_equal("albatross", a.max_by {|x| x.length })
assert_equal(1, [2,3,1].max_by {|x| -x })
+ assert_equal(%w[horse albatross], a.max_by(2) {|x| x.length })
end
def test_minmax_by