add some tests, all tests passed