Fix Operation#invert

didn't change initialLength correctly
Add tests for Operation#invert

and use cleanupEfficiency
Extend to-do