summaryrefslogtreecommitdiff
path: root/spec/ruby/core/enumerable/include_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/enumerable/include_spec.rb')
-rw-r--r--spec/ruby/core/enumerable/include_spec.rb33
1 files changed, 31 insertions, 2 deletions
diff --git a/spec/ruby/core/enumerable/include_spec.rb b/spec/ruby/core/enumerable/include_spec.rb
index dab1b04451..d59b351486 100644
--- a/spec/ruby/core/enumerable/include_spec.rb
+++ b/spec/ruby/core/enumerable/include_spec.rb
@@ -1,7 +1,36 @@
require_relative '../../spec_helper'
require_relative 'fixtures/classes'
-require_relative 'shared/include'
describe "Enumerable#include?" do
- it_behaves_like :enumerable_include, :include?
+ it "returns true if any element == argument for numbers" do
+ class EnumerableSpecIncludeP; def ==(obj) obj == 5; end; end
+
+ elements = (0..5).to_a
+ EnumerableSpecs::Numerous.new(*elements).include?(5).should == true
+ EnumerableSpecs::Numerous.new(*elements).include?(10).should == false
+ EnumerableSpecs::Numerous.new(*elements).include?(EnumerableSpecIncludeP.new).should == true
+ end
+
+ it "returns true if any element == argument for other objects" do
+ class EnumerableSpecIncludeP11; def ==(obj); obj == '11'; end; end
+
+ elements = ('0'..'5').to_a + [EnumerableSpecIncludeP11.new]
+ EnumerableSpecs::Numerous.new(*elements).include?('5').should == true
+ EnumerableSpecs::Numerous.new(*elements).include?('10').should == false
+ EnumerableSpecs::Numerous.new(*elements).include?(EnumerableSpecIncludeP11.new).should == true
+ EnumerableSpecs::Numerous.new(*elements).include?('11').should == true
+ end
+
+
+ it "returns true if any member of enum equals obj when == compare different classes (legacy rubycon)" do
+ # equality is tested with ==
+ EnumerableSpecs::Numerous.new(2,4,6,8,10).include?(2.0).should == true
+ EnumerableSpecs::Numerous.new(2,4,[6,8],10).include?([6, 8]).should == true
+ EnumerableSpecs::Numerous.new(2,4,[6,8],10).include?([6.0, 8.0]).should == true
+ end
+
+ it "gathers whole arrays as elements when each yields multiple" do
+ multi = EnumerableSpecs::YieldsMulti.new
+ multi.include?([1,2]).should == true
+ end
end