micro test framework less than 40 lines