Breaking-change release surfaced by a code-review + black-box TDD pass. Full details in CHANGELOG.md.
Breaking changes
Area()now returns a non-negative magnitude (was the signed shoelace area, negative for clockwise polygons). (#7)MaxIndex()/FindMinMaxInOn()throwInvalidOperationExceptionon empty input (LINQ convention);Scale()on empty still returns empty. (#9)AsTime(TimeSpan)drops the trailing", "separator and returns"0 ms"forTimeSpan.Zero. (#10)- Removed the redundant
Scale<T>(IEnumerable<double>)overload with an unused type parameter — use the non-genericScale(). (#8)
Also
- 33 new black-box tests for previously-untested surface (
HsVtoArgb,Head/Tail/HeadAndTail,PluralizeWhenNeeded,AsTime(TimeSpan),FindMinMaxInOn,Scale,MaxIndex). 228 tests pass. - CI uploads coverage to Codecov; added a SonarCloud workflow (#11 tracks enabling the secrets).