diff options
Diffstat (limited to 'spec/ruby/core/set/initialize_spec.rb')
| -rw-r--r-- | spec/ruby/core/set/initialize_spec.rb | 64 |
1 files changed, 40 insertions, 24 deletions
diff --git a/spec/ruby/core/set/initialize_spec.rb b/spec/ruby/core/set/initialize_spec.rb index ad9e1bd8c9..45538b38fb 100644 --- a/spec/ruby/core/set/initialize_spec.rb +++ b/spec/ruby/core/set/initialize_spec.rb @@ -2,71 +2,87 @@ require_relative '../../spec_helper' describe "Set#initialize" do it "is private" do - Set.should have_private_instance_method(:initialize) + Set.private_instance_methods(false).should.include?(:initialize) end it "adds all elements of the passed Enumerable to self" do s = Set.new([1, 2, 3]) - s.size.should eql(3) - s.should include(1) - s.should include(2) - s.should include(3) + s.size.should.eql?(3) + s.should.include?(1) + s.should.include?(2) + s.should.include?(3) end it "uses #each_entry on the provided Enumerable" do enumerable = MockObject.new('mock-enumerable') enumerable.should_receive(:each_entry).and_yield(1).and_yield(2).and_yield(3) s = Set.new(enumerable) - s.size.should eql(3) - s.should include(1) - s.should include(2) - s.should include(3) + s.size.should.eql?(3) + s.should.include?(1) + s.should.include?(2) + s.should.include?(3) end it "uses #each on the provided Enumerable if it does not respond to #each_entry" do enumerable = MockObject.new('mock-enumerable') enumerable.should_receive(:each).and_yield(1).and_yield(2).and_yield(3) s = Set.new(enumerable) - s.size.should eql(3) - s.should include(1) - s.should include(2) - s.should include(3) + s.size.should.eql?(3) + s.should.include?(1) + s.should.include?(2) + s.should.include?(3) end it "raises if the provided Enumerable does not respond to #each_entry or #each" do enumerable = MockObject.new('mock-enumerable') - -> { Set.new(enumerable) }.should raise_error(ArgumentError, "value must be enumerable") + -> { Set.new(enumerable) }.should.raise(ArgumentError, "value must be enumerable") end it "should initialize with empty array and set" do s = Set.new([]) - s.size.should eql(0) + s.size.should.eql?(0) s = Set.new({}) - s.size.should eql(0) + s.size.should.eql?(0) end it "preprocesses all elements by a passed block before adding to self" do s = Set.new([1, 2, 3]) { |x| x * x } - s.size.should eql(3) - s.should include(1) - s.should include(4) - s.should include(9) + s.size.should.eql?(3) + s.should.include?(1) + s.should.include?(4) + s.should.include?(9) end it "should initialize with empty array and block" do s = Set.new([]) { |x| x * x } - s.size.should eql(0) + s.size.should.eql?(0) end it "should initialize with empty set and block" do s = Set.new(Set.new) { |x| x * x } - s.size.should eql(0) + s.size.should.eql?(0) + end + + it "should initialize with set" do + o = Set.new([1, 2]) + s = Set.new(o) + s.size.should.eql?(2) + s.should.include?(1) + s.should.include?(2) + end + + it "should initialize with set and block" do + o = Set.new([1, 2]) + s = Set.new(o) { |e| e + 2 } + s.size.should.eql?(2) + s.should.include?(3) + s.should.include?(4) end it "should initialize with just block" do s = Set.new { |x| x * x } - s.size.should eql(0) - s.should eql(Set.new) + s.size.should.eql?(0) + s.should.eql?(Set.new) end end |
