In theory. In practice, the code will often have corner case behaviours that eludes any of the tests, yet are still important.
As an aside, as I understand it, refactoring was popularised as a response basically to this conundrum - it's a technique for reorganising code without changing its functionality. So you can gradually "rewrite" your two page function without losing the accumulated knowledge.