Add comprehensive test suite with "make test"