d319c96c

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

ical-recurrence: keep the limit out of the weekly BySetPos set

@
BYSETPOS operates on
a set of recurrence instances in one interval of the recurrence
rule.  For example, in a WEEKLY rule, the interval would be one
week A set of recurrence instances starts at the beginning of the
interval defined by the FREQ rule part.
@

The interval here is the week, so the set BYSETPOS numbers has to be
every candidate in the week.  The limit is an implementation detail of
this library, not part of the recurrence rule, so it may only cut off
results.

Drop the early 'd <= limit' guard from inside the list that filterSetPos
numbers.  The guard below it already bounds the results, and the weeks
themselves are already bounded by weeklyWeekRecurrence, so nothing here
becomes unbounded.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 7s 1s 1s 8s 7s
Eval 9s 13s 13s 23s 0s
Build 22s 5m53s 16m02s 16m24s 13m33s
Suite 7s 6m08s 16m17s 16m24s 13m40s

Timeline

0s20s5m5m20s5m40s6m6m20s6m40s7m7m20s