implement test cases