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

johanjoensson / impurityModel / 35728744800
94%

Build:
DEFAULT BRANCH: master
Ran 22 Sep 2026 01:08PM UTC
Jobs 2
Files 270
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

22 Sep 2026 12:36PM UTC coverage: 91.658% (-0.05%) from 91.706%
35728744800

push

github

johanjoensson
test: cover the block merge primitives, and correct a hazard that was false

Four things the adversarial review made necessary.

**A benchmark for `block_inner`/`count_rows_in`.** A 4.0x and a 7.2x regression in these
shipped with `pytest -m benchmark` green, because nothing in the suite touched them. The
assertion is a RATIO, not a time: the perf tests here deliberately avoid absolute durations
as machine-dependent, and the defect was allocation rather than speed. `count_rows_in` is
the same linear merge over the same support with no per-row allocation, so `block_inner`
should cost a small multiple of it -- that multiple being its width^2 multiply-accumulate,
not malloc traffic. Measured 3.8-3.9x with views against ~13x when the join materialized
keys; the bound sits at 8.

**Hazard 6 of `flat_key_store.md` was false, and expensively so.** It said
`IMPURITYMODEL_BUILD=debug` is the only build that catches an out-of-bounds read in this
layer. `debug` enables CYTHON's boundscheck, which does not reach the C++ layer at all: the
heap-buffer-overflow write in `from_columns` shipped with the four-leg debug gate green on
every commit containing it, and only ASan found it. Believing that claim is what made a
green debug gate feel like evidence the indexing was sound, and I repeated it in commit
messages. Marked false in place rather than quietly edited.

**A missing `except +`.** `ManyBodyBlockState(vector[Key], vector[Value], size_t)` packs its
keys through the flat store now, which rejects a zero-chunk key -- but the declaration had
no `except +`, so such a throw would cross the Cython boundary as `std::terminate`: SIGABRT
with no traceback, and from a `nogil` block no rank output either. Found by auditing after
an unexplained SIGABRT in one gate run; that run is NOT demonstrably this bug (no call site
is inside `nogil`, and it did not reproduce), but the hazard is real and was mine.

**A pre-existing flake, fixed because it cost a gate cycle.**
`test_the_... (continued)

6 of 28 new or added lines in 2 files covered. (21.43%)

112 existing lines in 9 files now uncovered.

35544 of 38779 relevant lines covered (91.66%)

1.83 hits per line

Uncovered Changes

Lines Coverage ∆ File
22
97.04
-2.96% src/impurityModel/test/basis/test_block_state.py

Coverage Regressions

Lines Coverage ∆ File
33
90.53
0.19% src/impurityModel/ed/manybody_basis.py
33
88.22
0.0% src/impurityModel/ed/memory_estimate.py
29
87.55
-11.52% src/impurityModel/test/operators/test_manybody_utils.py
5
94.07
0.0% src/impurityModel/ed/basis_transcription.py
5
93.09
0.35% src/impurityModel/ed/lie_algebra.py
3
97.56
0.01% src/impurityModel/ed/cipsi_solver.py
2
98.7
-1.3% src/impurityModel/test/basis/test_basis_storage.py
1
99.31
0.19% src/impurityModel/ed/basis_split.py
1
99.41
-0.25% src/impurityModel/test/mpi_infra/test_mpi_comm.py
Jobs
ID Job ID Ran Files Coverage
1 35728744800.1 22 Sep 2026 01:08PM UTC 270
91.66
GitHub Action Run
2 35728744800.2 23 Sep 2026 11:35AM UTC 270
91.66
GitHub Action Run
Source Files on build 35728744800
  • Tree
  • List 270
  • Changed 15
  • Source Changed 14
  • Coverage Changed 15
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35728744800
  • b40a4984 on github
  • Prev Build on master (#35384541204)
  • Next Build on master (#35838330300)
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