774af9b4

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

ical-recurrence: say what the limit actually bounds

recurEvents said "up to a given limit", which reads as though nothing it
returns can lie beyond the limit.  That is not what it does, and on
reflection not what it should do.

The limit exists because a recurrence rule can be infinite, so the rules
are expanded only as far as it reaches.  Everything else in a recurrence
set is finite already: DTSTART is one instance, and the RDATEs enumerate
theirs.  recurRecurrenceDateTimes is not even passed the limit, and
DTSTART is inserted whatever it says.  Leaving either out because it falls
beyond an argument this library invented would discard what the calendar
actually said.

So this is the documentation being wrong rather than the behaviour, and
the fix is to the documentation.  Three tests pin the distinction, so that
the next reader finds it asserted rather than having to infer it:
an RDATE beyond the limit is kept, a DTSTART beyond the limit is kept, and
a rule is bounded by it.

No behaviour changes here.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 1s 1s 1s 0s
Eval 1s 10s 10s 11s 0s
Build 10s 1m12s 1m12s 1m22s 0s
Suite 0s 1m23s 1m22s 1m22s 0s

Timeline

0s10s20s30s40s50s1m1m10s1m20s