add more test cases for edge cases