summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormarcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-12-10 22:36:28 +0000
committermarcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-12-10 22:36:28 +0000
commita9770bac6375c9d4ff8ba8bb1842841aec7c59e3 (patch)
tree94c9212fae50488fa144697a6715be89576d74ad /test
parent86a794a6c34c9412f497907736b4857739b7af3c (diff)
Add case equality arity to Enumerable#all?, any?, none? and one?,
and specialized Array#any? and Hash#any? Based on patch by D.E. Akers [#11286] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_enum.rb18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/ruby/test_enum.rb b/test/ruby/test_enum.rb
index ae119c73bf..12fc2ee66a 100644
--- a/test/ruby/test_enum.rb
+++ b/test/ruby/test_enum.rb
@@ -310,6 +310,8 @@ class TestEnumerable < Test::Unit::TestCase
assert_equal(false, [true, true, false].all?)
assert_equal(true, [].all?)
assert_equal(true, @empty.all?)
+ assert_equal(true, @obj.all?(Fixnum))
+ assert_equal(false, @obj.all?(1..2))
end
def test_any
@@ -319,27 +321,43 @@ class TestEnumerable < Test::Unit::TestCase
assert_equal(false, [false, false, false].any?)
assert_equal(false, [].any?)
assert_equal(false, @empty.any?)
+ assert_equal(true, @obj.any?(1..2))
+ assert_equal(false, @obj.any?(Float))
+ assert_equal(false, [1, 42].any?(Float))
+ assert_equal(true, [1, 4.2].any?(Float))
+ assert_equal(false, {a: 1, b: 2}.any?(->(kv) { kv == [:foo, 42] }))
+ assert_equal(true, {a: 1, b: 2}.any?(->(kv) { kv == [:b, 2] }))
end
def test_one
assert(@obj.one? {|x| x == 3 })
assert(!(@obj.one? {|x| x == 1 }))
assert(!(@obj.one? {|x| x == 4 }))
+ assert(@obj.one?(3..4))
+ assert(!(@obj.one?(1..2)))
+ assert(!(@obj.one?(4..5)))
assert(%w{ant bear cat}.one? {|word| word.length == 4})
assert(!(%w{ant bear cat}.one? {|word| word.length > 4}))
assert(!(%w{ant bear cat}.one? {|word| word.length < 4}))
+ assert(%w{ant bear cat}.one?(/b/))
+ assert(!(%w{ant bear cat}.one?(/t/)))
assert(!([ nil, true, 99 ].one?))
assert([ nil, true, false ].one?)
assert(![].one?)
assert(!@empty.one?)
+ assert([ nil, true, 99 ].one?(Integer))
end
def test_none
assert(@obj.none? {|x| x == 4 })
assert(!(@obj.none? {|x| x == 1 }))
assert(!(@obj.none? {|x| x == 3 }))
+ assert(@obj.none?(4..5))
+ assert(!(@obj.none?(1..3)))
assert(%w{ant bear cat}.none? {|word| word.length == 5})
assert(!(%w{ant bear cat}.none? {|word| word.length >= 4}))
+ assert(%w{ant bear cat}.none?(/d/))
+ assert(!(%w{ant bear cat}.none?(/b/)))
assert([].none?)
assert([nil].none?)
assert([nil,false].none?)