diff options
Diffstat (limited to 'spec/ruby/core/hash/shift_spec.rb')
-rw-r--r-- | spec/ruby/core/hash/shift_spec.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/spec/ruby/core/hash/shift_spec.rb b/spec/ruby/core/hash/shift_spec.rb index 9421a77537..8cf3f4025a 100644 --- a/spec/ruby/core/hash/shift_spec.rb +++ b/spec/ruby/core/hash/shift_spec.rb @@ -61,4 +61,19 @@ describe "Hash#shift" do lambda { HashSpecs.frozen_hash.shift }.should raise_error(frozen_error_class) lambda { HashSpecs.empty_frozen_hash.shift }.should raise_error(frozen_error_class) end + + it "works when the hash is at capacity" do + # We try a wide range of sizes in hopes that this will cover all implementationss base Hash size. + results = [] + 1.upto(100) do |n| + h = {} + n.times do |i| + h[i] = i + end + h.shift + results << h.size + end + + results.should == 0.upto(99).to_a + end end |