Skip to content

Commit d4b2982

Browse files
committed
Add specs for the order of elements in merged hashes.
1 parent 209542f commit d4b2982

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

spec/ruby/core/hash/merge_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,24 @@
6363
merge_pairs.should == each_pairs
6464
end
6565

66+
it "preserves the order of merged elements" do
67+
h1 = { 1 => 2, 3 => 4, 5 => 6 }
68+
h2 = { 1 => 7 }
69+
merge_pairs = []
70+
h1.merge(h2).each_pair { |k, v| merge_pairs << [k, v] }
71+
merge_pairs.should == [[1,7], [3, 4], [5, 6]]
72+
end
73+
74+
it "preserves the order of merged elements for large hashes" do
75+
h1 = {}
76+
h2 = {}
77+
merge_pairs = []
78+
expected_pairs = []
79+
(1..100).each { |x| h1[x] = x; h2[101 - x] = x; expected_pairs << [x, 101 - x] }
80+
h1.merge(h2).each_pair { |k, v| merge_pairs << [k, v] }
81+
merge_pairs.should == expected_pairs
82+
end
83+
6684
ruby_version_is "2.6" do
6785
it "accepts multiple hashes" do
6886
result = { a: 1 }.merge({ b: 2 }, { c: 3 }, { d: 4 })

0 commit comments

Comments
 (0)