Couple of notes:
 - `no_more` would be much better named as `zero` or the const `ZERO`, and its analouge should be `non_zero` or `NON_ZERO`
 - Try not to repeat yourself. I think it would be much clearer if you defined results once and make the rest of these parameters variables, its harder to grok how the results exactly changed in each context without that. Same goes for scope. It has the bonus of making the lines shorter. For example, lower down in the test you can then say `eq(selector)`