4bddc3f5

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

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 1m58s 1s 1s 1m59s 1m58s
Eval 3m06s 16s 16s 3m23s 1m06s
Build 3m22s 3m22s - - 12m51s
Suite 1m58s 3m41s - - 33m53s

Timeline

0s3m10s3m20s15m40s15m50s16m16m10s16m20s16m30s