feat(query): add topology-aware simplex barycenters - #501
Conversation
- Add `DelaunayTriangulation::simplex_barycenter` for Euclidean and periodic triangulations. - Surface typed barycenter failures through `SimplexBarycenterError` and `DelaunayError`. - Export the barycenter error through root, query, and prelude facades. - Add benchmark coverage for the public barycenter query. - Refresh dependency locks and align the pinned Markdown linter on `rumdl` 0.2.28. Closes #420
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (8)
✅ Files skipped from review due to trivial changes (6)
🚧 Files skipped from review as they are similar to previous changes (1)
WalkthroughAdds a public topology-aware simplex barycenter API and error type, wires them into exports, tests, and benchmarks, and updates CI coverage, tooling pins, dependency versions, and a few test-support utilities. ChangesSimplex Barycenter Feature
Tooling, coverage, and version updates
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related issues
Possibly related PRs
Suggested labels: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 51 |
🟢 Coverage 97.80% diff coverage · +0.07% coverage variation
Metric Results Coverage variation ✅ +0.07% coverage variation (-1.00%) Diff coverage ✅ 97.80% diff coverage Coverage variation details
Coverable lines Covered lines Coverage Common ancestor commit (9cecd49) 77903 70960 91.09% Head commit (626b93a) 78264 (+361) 71345 (+385) 91.16% (+0.07%) Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch:
<coverage of head commit> - <coverage of common ancestor commit>Diff coverage details
Coverable lines Covered lines Diff coverage Pull request (#501) 363 355 97.80% Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified:
<covered lines added or modified>/<coverable lines added or modified> * 100%
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #501 +/- ##
==========================================
+ Coverage 91.06% 91.13% +0.07%
==========================================
Files 87 87
Lines 77679 78040 +361
==========================================
+ Hits 70738 71123 +385
+ Misses 6941 6917 -24
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
- Generate Cobertura coverage and Codecov JUnit results from the same instrumented nextest run. - Keep property tests in the coverage job with a dedicated coverage profile and bounded timeout for LLVM instrumentation overhead. - Remove the stale multiple-crate-versions lint expectation and make the barycenter allocation benchmark tolerate exact-float roundoff.
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.config/nextest.toml (1)
58-62: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winDuplicate
junitconfig vs.profile.ci.junit.This block is identical to the existing
[profile.ci.junit](path, store-success-output, store-failure-output). Consider inheriting fromciinstead of duplicating, so future changes to junit settings don't silently drift between profiles.♻️ Proposed refactor using profile inheritance
[profile.coverage] +inherits = "ci" # Coverage runs execute LLVM-instrumented binaries in parallel, so exact # predicate regressions need more headroom than the normal CI profile while # still failing genuine hangs. failure-output = "immediate-final" success-output = "never" fail-fast = false retries = 0 slow-timeout = { period = "300s", terminate-after = 1 } - -[profile.coverage.junit] -path = "test-results/junit.xml" -store-success-output = false -store-failure-output = true🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.config/nextest.toml around lines 58 - 62, The [profile.coverage.junit] block duplicates the same junit settings already defined under profile.ci.junit, so update the nextest config to inherit from ci instead of repeating path/store-success-output/store-failure-output values. Locate the junit profile blocks in the TOML config and replace the duplicated coverage junit settings with inheritance from profile.ci, keeping any coverage-specific overrides only if they differ from ci.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In @.config/nextest.toml:
- Around line 58-62: The [profile.coverage.junit] block duplicates the same
junit settings already defined under profile.ci.junit, so update the nextest
config to inherit from ci instead of repeating
path/store-success-output/store-failure-output values. Locate the junit profile
blocks in the TOML config and replace the duplicated coverage junit settings
with inheritance from profile.ci, keeping any coverage-specific overrides only
if they differ from ci.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: CHILL
Plan: Pro
Run ID: 4a8f1e29-8cb9-41eb-a3cd-042c8233bad8
📒 Files selected for processing (6)
.config/nextest.toml.github/workflows/codecov.ymlbenches/allocation_hot_paths.rsjustfilesrc/lib.rstests/COVERAGE.md
💤 Files with no reviewable changes (1)
- src/lib.rs
✅ Files skipped from review due to trivial changes (1)
- tests/COVERAGE.md
🚧 Files skipped from review as they are similar to previous changes (1)
- benches/allocation_hot_paths.rs
- Document `simplex_barycenter` as the topology-aware local-editing point for k=1 Pachner insert proposals. - Update query-prelude, benchmark, and coverage docs to match the current barycenter and Codecov/nextest surfaces. - Cover barycenter overflow, periodic lift, canonicalization, and point-validation error paths while inheriting CI JUnit settings for coverage.
DelaunayTriangulation::simplex_barycenterfor Euclidean and periodic triangulations.SimplexBarycenterErrorandDelaunayError.rumdl0.2.28.Closes #420