Portability

used std::numeric_limits instead of constants (which aren't the same on
all operating systems).
Set tests to not build when solution is built
Compiler warned about conversion from double to float