Refactored yet again unit test framework to improve the macros