Sha256: 2adb530db9a2bb68c4a2f046ba87e453540bb506742d3dc841ef6b3e08adee5a

Contents?: true

Size: 1.26 KB

Versions: 52

Compression:

Stored size: 1.26 KB

Contents

require File.expand_path('../../spec_helper', __FILE__)

describe "Hash literal" do
  it "{} should return an empty hash" do
    {}.size.should == 0
    {}.should == {}
  end

  it "{} should return a new hash populated with the given elements" do
    h = {:a => 'a', 'b' => 3, 44 => 2.3}
    h.size.should == 3
    h.should == {:a => "a", "b" => 3, 44 => 2.3}
  end

  it "treats empty expressions as nils" do
    h = {() => ()}
    h.keys.should == [nil]
    h.values.should == [nil]
    h[nil].should == nil

    h = {() => :value}
    h.keys.should == [nil]
    h.values.should == [:value]
    h[nil].should == :value

    h = {:key => ()}
    h.keys.should == [:key]
    h.values.should == [nil]
    h[:key].should == nil
  end

  it "freezes string keys on initialization" do
    key = "foo"
    h = {key => "bar"}
    key.reverse!
    h["foo"].should == "bar"
    h.keys.first.should == "foo"
    h.keys.first.frozen?.should == true
    key.should == "oof"
  end

  it "checks duplicated keys on initialization" do
    h = {:foo => :bar, :foo => :foo}
    h.keys.size.should == 1
    h.should == {:foo => :foo}
  end

  it "accepts a hanging comma" do
    h = {:a => 1, :b => 2,}
    h.size.should == 2
    h.should == {:a => 1, :b => 2}
  end
end

language_version __FILE__, "hash"

Version data entries

52 entries across 52 versions & 2 rubygems

Version Path
rhodes-7.6.0 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-7.5.1 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-7.4.1 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-7.1.17 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-6.2.0 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-6.0.11 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-5.5.18 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-5.5.17 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-5.5.15 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-5.5.0.22 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-5.5.2 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-5.5.0.7 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-5.5.0.3 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-5.5.0 spec/framework_spec/app/spec/language/hash_spec.rb
tauplatform-1.0.3 spec/framework_spec/app/spec/language/hash_spec.rb
tauplatform-1.0.2 spec/framework_spec/app/spec/language/hash_spec.rb
tauplatform-1.0.1 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-3.5.1.12 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-3.3.5 spec/framework_spec/app/spec/language/hash_spec.rb
rhodes-3.4.2 spec/framework_spec/app/spec/language/hash_spec.rb