> What would the comprehensive test that should be written first look
> like for Calculator sum?

A more comprehensive test might include type checking on the
variables, etc.  Anything that the Customer needs should be tested.

I like to think of unit testing as a variant of design-by-contract. 
Before anything goes into the code base, the test/contract has to be
changed to reflect new expectations.

It's impossible to test every possible situation -- it's more
important to define your behaviour in terms of tests.  If you unit
test before every new bit of code, you will have a comprehensive test
of your expectations.

This is, of course, much more useful than tests that ensure that the
software works as expected in every possible situation.  With the
exception of things like flight avionics, most real world software has
a more limited range of expectations.