This is based on the Specification pattern, as explained by Vladimir Khorikov here: https://enterprisecraftsmanship.com/2016/02/08/specification-pattern-c-implementation/
Quote
Specification pattern is a pattern that allows us to encapsulate some piece of domain knowledge into a single unit – specification – and reuse it in different parts of the code base.
In other words, it helps keep the code more DRY
For instructions on how to use it, read the unit tests. They are short and easy to understand, and perfectly shows how to use the specification.