Updating tests

 * Updated test so that it asserts better and gets better code coverage.
 * Updated build system to separte coverage and tests tasks.