7069d5d4

ical-recurrence: test that a monthly BySetPos does not depend on the limit

The limit is an implementation detail of this library, not part of the
recurrence rule, so it must only cut off results.  It must not change
which instance BYSETPOS selects.

monthlyDateTimeRecurrence has its 'd <= limit' guard inside the list
that filterSetPos numbers, so in the month that straddles the limit the
candidate set is truncated and BYSETPOS picks from the truncated set.
weeklyDateTimeRecurrence and yearlyDateTimeRecurrence have the same
problem; dailyDateTimeRecurrence does not, because there filterSetPos
only ever spans the times within one day.

The last week day of February 2020 is the 28th, which lies beyond a
limit of the 20th, so the recurrence set up to that limit contains no
instance in February at all.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 2s 2s 3s 0s
Eval 4s 12s 12s 17s 1s
Build 16s 6m18s 9m44s 10m00s 7m16s
Suite 0s 6m34s 10m00s 10m00s 7m18s

Timeline

0s7m40s8m8m20s8m40s9m9m20s9m40s10m