Not sure here. Why expose `dirty?` as a public API? Nobody needs it except what's already tested in `MapGroup` — which should really be tested here in `Map`.

My suggestion: move your tests from `map_group_spec` to `map_spec`, make `dirty?` private, and ditch the tests for `dirty?`. It's an implementation detail :)