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

johanjoensson / impurityModel / 33924358038
91%

Build:
DEFAULT BRANCH: master
Ran 04 Sep 2026 10:37PM UTC
Jobs 1
Files 251
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

04 Sep 2026 10:08PM UTC coverage: 90.546% (+0.03%) from 90.52%
33924358038

push

github

johanjoensson
Name orbital groups by their key, not by a guessed shell

The `l=2,a` style label was a guess: `_block_shell_tag` counted the
spin-orbitals in a group and inverted n = 2(2l+1) to recover a shell. That is
only meaningful when a group is a whole spin-doubled shell, which is true in
the spectra path (model.py keys impurity_orbitals by l) and false by
construction in the selfenergy and double-counting paths, where
group_orbitals_by_blocks makes each group a single symmetry manifold.

On the same NiO d shell the two keyings therefore disagreed:

  key = l, whole 3d shell:      ['l=2,a', 'l=2,b']     <- eg / t2g, correct
  key = manifold index:         ['mixed,a', 'l=1,a']   <- t2g's 6 spin-orbitals
                                                          are also a p shell's

Drop the inference. A block equivalence class is named after the
impurity_orbitals group that contains it -- the same key the occupation search,
the basis-generation windows and the frozen-shell notes already use -- so one
legend now covers the whole run. A group the block structure splits further
keeps its key and gains a letter (`group 2.a`); a class spanning several groups
is `groups 1,2`; a class with an orbital outside every group falls back to a
letter, since there is then no group to name it after.

The `N(...)` columns of the thermal and per-eigenstate tables and the screening
diagnostics' channel names all follow, and print_impurity_orbital_groups no
longer needs to carry the key alongside a separate label.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012WjuzYMi6j8ciZbztSwfjP

69 of 69 new or added lines in 3 files covered. (100.0%)

105 existing lines in 8 files now uncovered.

31281 of 34547 relevant lines covered (90.55%)

0.91 hits per line

Coverage Regressions

Lines Coverage ∆ File
31
93.21
0.97% src/impurityModel/ed/groundstate.py
23
75.0
1.67% src/impurityModel/ed/basis_generation.py
18
96.86
-0.01% src/impurityModel/ed/observables.py
12
94.52
0.0% src/impurityModel/ed/dc_criteria.py
8
94.77
0.26% src/impurityModel/ed/solver_basis.py
8
74.48
0.0% src/impurityModel/ed/susceptibility.py
4
96.64
-0.5% src/impurityModel/ed/utils.py
1
98.59
0.0% src/impurityModel/ed/selfenergy.py
Jobs
ID Job ID Ran Files Coverage
1 33924358038.1 04 Sep 2026 10:37PM UTC 251
90.55
GitHub Action Run
Source Files on build 33924358038
  • Tree
  • List 251
  • Changed 10
  • Source Changed 9
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #33924358038
  • 2c5ee1a4 on github
  • Prev Build on master (#33918427089)
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