add test suite. close #19