summaryrefslogtreecommitdiff
path: root/spec/ruby/core/hash/shift_spec.rb
diff options
context:
space:
mode:
authoreregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-27 20:38:57 +0000
committereregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-11-27 20:38:57 +0000
commit50441014ffd3645f258e56b9415b7787c910408b (patch)
tree3d5eef5ad1ea7e389dc51fc87437664b984ac184 /spec/ruby/core/hash/shift_spec.rb
parent49cd16bfaf4f03885058ce748119bc8ea2de735a (diff)
Update to ruby/spec@cdd6ff7
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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