Imagine there is a number of filter functions that all perform filtering of items in a list based on different criteria. Say there are 5 such filter functions. All unit tested
Now imagine there is another function that takes a list of items, 5 arguments (not necessarily homogeneous), based on these arguments it decides which filters to "activate" and at the end uses "activated" filters
def filter_list(list, arg1, arg2, arg3, arg4, arg5) activated_filters =  if (some condition for arg1) activated_filters.append(filter1) if (some condition for arg2) activated_filters.append(filter2) ... filtered_list = filter(activated_filters, list) return filtered_list
How would one go about unit testing this function? Even though each filter has been unit tested separately and is verified to work, the function based on some simple and some not so simple conditions is activating each filter accordingly.
Given the number of arguments and large number of possible combinations, having large test coverage seems to be difficult.
The actual logic inside the function is fairly simple, based on some conditions filters are either applied or not.
I am looking to either come up with a good test strategy or a suggestion to refactor function in question. If any help, language is Python