By: Tom Sydney Kerckhove <syd@cs-syd.eu>
ical-recurrence: chunk golden occurrences by unfolded line Two things made the golden format lossy. renderEventOccurrence wrote nothing at all for an absent property while parseEventOccurrences read the file back in fixed two-line chunks, so an occurrence without a DTSTART or without a DTEND/DURATION shifted every occurrence after it. Write an empty line for an absent property, which is what the parser already reads as absent. Chunking on raw lines was also wrong on its own: a content line longer than 75 octets is rendered folded over several raw lines, so a single long property, a TZID for instance, was read as several occurrences. Unfold first with parseUnfoldedLines and chunk the unfolded lines. The existing golden files are unaffected, because every occurrence in them has both a start and an end and none of their lines are long enough to be folded.
| Time to Start | Worker time | Duration | Time to finish | Idle | |
| Config | 4s | 0s | 0s | 5s | 4s |
| Eval | 5s | 14s | 14s | 19s | 0s |
| Build | - | - | - | - | 6m00s |
| Suite | 4s | 15s | - | - | 6m05s |