Gerrrr opened a new pull request, #173: URL: https://github.com/apache/otava/pull/173
Add a hand-authored sparse reference case and Hypothesis-generated sparse histories for `ChangePointsByTime` and `ChangePointsByMetric`. Read parity covers iteration and indexing, metric enumeration and selection, per-metric reads, timestamp and commit lookup, and pivot/by_time/by_metric conversions. Mutation coverage exercises copy isolation, shared conversion views, append/extend construction, and invalid or out-of-order boundaries. The tests exposed and this commit fixes three parity bugs: - `ChangePoints.select_metrics()` retained empty timestamp rows and disagreed with the metric view for missing or invalid metrics. It now validates inputs, raises consistent `TypeError/KeyError` exceptions, and omits empty groups. - `ChangePointsByMetric.pivot()` structurally contaminated a source metric bucket when merging metrics at the same timestamp. It now builds shallow group views, so conversion itself is non-mutating while shared ChangePoint semantics remain intact. - `ChangePointsByMetric.extend()` stored a complete multi-metric group in every metric bucket, causing duplicate metrics during later pivots. It now stores the matching per-metric projection, consistent with append(). In addition, this PR documents that conversions are shared views and that `copy().pivot()` provides isolation. This PR also adds Hypothesis to the development dependencies. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
