test cases and examples