• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wwu-mmll / confound_corrected_cpm / 35154792679
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: develop
DEFAULT BRANCH: main
Ran 16 Sep 2026 10:03PM UTC
Jobs 1
Files 31
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Sep 2026 08:48PM UTC coverage: 86.57% (+0.2%) from 86.327%
35154792679

push

github

NilsWinter
Add feature-interaction matrix test covering all optional-feature combinations

Phase 5. Twice during this refactor a feature was found silently inert in one
code path while working in another, with no crash and no failing test:
presence_filter was a no-op under the batched pipeline, and
connected_components was skipped inside the inner CV. Both were invisible to a
suite that exercised each feature on its own, because the features interact --
an option can be honoured alone and dropped in combination.

tests/test_feature_interactions.py runs all 2^4 = 16 combinations of inner_cv x
calculate_residuals x connected_components x presence_filter end to end,
asserting each completes, produces finite aggregated metrics (a broken
combination tends to surface as NaN rather than an exception), yields edge
stability within [0, 1], and writes its result files.

Two targeted guards accompany it:

  test_connected_components_survives_stable_edge_selection pins the inner-CV
  bug to its observable consequence. run_inner_folds had two branches and only
  the unbatched one applied the component filter; because select_stable_edges
  builds the FINAL edge mask from the inner loop's accumulated stability, anyone
  combining inner_cv + select_stable_edges + connected_components had the filter
  silently ignored in their fitted model. Validated in both directions against
  the pre-refactor tree (d2e12f2): connected_components=999 must drop every
  edge, and the old code reports total stability 45.0 while the current code
  reports 0.0.

  A first version of this guard read the OUTER loop's stability instead, which
  applied the filter in both versions -- it passed on the buggy code and proved
  nothing. Worth recording: a regression test is only worth what it is checked
  against, and this one was rewritten after failing that check.

  test_presence_filter_is_applied_end_to_end protects the earlier fix rather
  than catching a live defect -- that bug was already repaired b... (continued)

2398 of 2770 relevant lines covered (86.57%)

0.87 hits per line

Coverage Regressions

Lines Coverage ∆ File
23
89.09
1.54% src/cccpm/utils.py
14
93.83
0.19% src/cccpm/edge_selection.py
7
97.42
-1.08% src/cccpm/results_manager.py
2
98.31
-0.45% src/cccpm/models/linear_model.py
1
98.92
0.02% src/cccpm/scoring.py
Jobs
ID Job ID Ran Files Coverage
1 35154792679.1 16 Sep 2026 10:03PM UTC 31
86.57
GitHub Action Run
Source Files on build 35154792679
  • Tree
  • List 31
  • Changed 8
  • Source Changed 7
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35154792679
  • 165f7f73 on github
  • Prev Build on develop (#32984891060)
  • Next Build on develop (#35608509104)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc