Sha256: 7e929adb4be98d425680e2a18d48884ab80bdb0e7b8d64c78b29dddfedb9fcef
Contents?: true
Size: 1.27 KB
Versions: 83
Compression:
Stored size: 1.27 KB
Contents
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../../spec_helper' require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/fixtures/classes' describe "Hash#shift" do it "removes a pair from hash and return it" do h = new_hash(:a => 1, :b => 2, "c" => 3, nil => 4, [] => 5) h2 = h.dup h.size.times do |i| r = h.shift r.class.should == Array h2[r.first].should == r.last h.size.should == h2.size - i - 1 end h.should == new_hash end it "returns nil from an empty hash " do new_hash.shift.should == nil end it "returns (computed) default for empty hashes" do new_hash(5).shift.should == 5 h = new_hash { |*args| args } h.shift.should == [h, nil] end ruby_version_is "" ... "1.9" do it "raises a TypeError if called on a frozen instance" do lambda { HashSpecs.frozen_hash.shift }.should raise_error(TypeError) lambda { HashSpecs.empty_frozen_hash.shift }.should raise_error(TypeError) end end ruby_version_is "1.9" do it "raises a RuntimeError if called on a frozen instance" do lambda { HashSpecs.frozen_hash.shift }.should raise_error(RuntimeError) lambda { HashSpecs.empty_frozen_hash.shift }.should raise_error(RuntimeError) end end end
Version data entries
83 entries across 83 versions & 1 rubygems