Instructions
Create a function merge_with_sum that takes two hashes with numeric values
and returns a new hash where values for matching keys are summed.
Example:
```ruby
merge_with_sum({a: 1, b: 2}, {b: 3, c: 4})
=> {a: 1, b: 5, c: 4}
Hints:
- Use .merge with a block
- The block receives key, old_val, new_val
- Return old_val + new_val in the block
Your Code
def merge_with_sum(hash1, hash2)
hash1.merge(hash2) { |_key, v1, v2| v1 + v2 }
end
RSpec.describe "merge_with_sum" do
it "sums overlapping keys" do
result = merge_with_sum({ a: 1, b: 2 }, { b: 3, c: 4 })
expect(result).to eq({ a: 1, b: 5, c: 4 })
end
it "handles non-overlapping hashes" do
result = merge_with_sum({ a: 1 }, { b: 2 })
expect(result).to eq({ a: 1, b: 2 })
end
it "handles empty hash" do
result = merge_with_sum({}, { a: 1 })
expect(result).to eq({ a: 1 })
end
end
Results
Click "Run Tests" to see results