I have two hashes h1 and h2 that I'd like to compare in RSpec.
I want to check that the elements of h1 are the same as h2 after some transformation, which we'll call f. That is, I want to verify that for every key k in h1, h1[k] == f(h2[k]).
For example, if all the values in h2 are twice as big as the corresponding values in h1, then I want to check that for every key k in h1, h2[k] == h1[k] * 2.
What's the right way to do this in RSpec? Currently I do:
h1 = ...
expect(
h2.all? { |k,v|
v == f(h1[k])
}
).to be true
but that seems clunky.
