Classify Possible Inputs
Based on the important input characteristics you selected in the previous step, classify all possible inputs into groups. Each classification contains inputs that have similar characteristics. In other words; inputs in different classifications will need to be handled slightly differently by your function.
Take note of the relationships between your classifications. Is one a more specific version of another? Are two of them mutually exclusive? Will some of your categories overlap from time to time? The answers to these questions will impact how you need to scaffold your implementation, and will effect the types of test cases you choose.
Describe your classifications and explain why you selected these in your README. You might like to use a diagram for this, rather than just a list. Sketchboard.io is a good option.