summaryrefslogtreecommitdiff
path: root/spec/ruby/core/hash/hash_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/hash/hash_spec.rb')
-rw-r--r--spec/ruby/core/hash/hash_spec.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/spec/ruby/core/hash/hash_spec.rb b/spec/ruby/core/hash/hash_spec.rb
index 9d1e984c60..cd67f7a652 100644
--- a/spec/ruby/core/hash/hash_spec.rb
+++ b/spec/ruby/core/hash/hash_spec.rb
@@ -1,4 +1,4 @@
-require File.expand_path('../../../spec_helper', __FILE__)
+require_relative '../../spec_helper'
describe "Hash" do
it "includes Enumerable" do
@@ -11,6 +11,14 @@ describe "Hash#hash" do
{ 0=>2, 11=>1 }.hash.should == { 11=>1, 0=>2 }.hash
end
+ it "returns a value in which element values do not cancel each other out" do
+ { a: 2, b: 2 }.hash.should_not == { a: 7, b: 7 }.hash
+ end
+
+ it "returns a value in which element keys and values do not cancel each other out" do
+ { :a => :a }.hash.should_not == { :b => :b }.hash
+ end
+
it "generates a hash for recursive hash structures" do
h = {}
h[:a] = h
@@ -33,4 +41,11 @@ describe "Hash#hash" do
h.hash.should == {x: [h]}.hash
# Like above, because h.eql?(x: [h])
end
+
+ it "allows omitting values" do
+ a = 1
+ b = 2
+
+ {a:, b:}.should == { a: 1, b: 2 }
+ end
end