c13e86c2

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

ical-recurrence: test that a weekly 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.

weeklyDateTimeRecurrence has its 'd <= limit' guard inside the list
that filterSetPos numbers, so in the week that straddles the limit the
candidate set is truncated and BYSETPOS picks from the truncated set.
monthlyDateTimeRecurrence 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 the week of the 20th of January 2020 is Friday the
24th, which lies beyond a limit of the 22nd, so the recurrence set up to
that limit contains no instance in that week at all.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 14s 1s 1s 15s 14s
Eval 26s 3m07s 3m07s 3m34s 10s
Build 1h33m39s 2m21s - - 1h30m05s
Suite 14s 5m30s - - 2h32m46s

Timeline

0s40s1m1m20s1m40s2m2m20s2m40s3m3m20s1h33m1h34m1h34m1h34m