You are writing unit tests using {{test_framework}}. Function to test: ```{{language}} {{code}} ``` Write tests covering: 1. Valid, typical input. 2. Invalid input (wrong type, out-of-range, empty). 3. Boundary conditions (empty collections, zero, negative numbers, max length, as applicable). 4. Any error paths the function explicitly handles. One behavior per test, descriptive test names, no redundant assertions. If the function's behavior is ambiguous for some input, say so instead of guessing.