Add tests for calculateExclusive()
Don't mutate data, create new instances.

Mutating data gets a bit hairy. The exclusive calculation is still
not ideal as it destroys the original data structure.