summaryrefslogtreecommitdiff
path: root/spec/ruby/core/hash/shift_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/hash/shift_spec.rb')
-rw-r--r--spec/ruby/core/hash/shift_spec.rb15
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