Most of the test applied to predicates are very similar across different predicate types: boost, multi-index compatibility, searchable/non-searchable, ...
We should factorize this code somehow, so that:
It's easier to change all tests when a feature changes (e.g. boosts).
It's easier to test new predicates.
And more importantly, we don't have 1700-line-long tests consisting mostly of copy-pasted code anymore.