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

sandialabs / LoQS / 31952745738
88%

Build:
DEFAULT BRANCH: main
Ran 16 Aug 2026 02:50PM UTC
Jobs 1
Files 61
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 Aug 2026 02:27PM UTC coverage: 88.844% (+0.6%) from 88.264%
31952745738

push

github

web-flow
Multi-qubit, multi-outcome instruments in statevector backend (#110)

* Enable 2Q/4Q parity-check instruments in the statevector backend (#51)

ZBasisOutcomeOperationDictInstrumentRep gains an outcome_qubits field,
decoupled from qubit_labels, so a single classical channel can carry
arbitrary outcome keys (a joint 2Q/4Q parity-check instrument) while
multiple channels stay decomposable per-qubit. npsvstate.py's instrument
handler is generalized on top of a new shared _sample_lazy helper
(factored out of the existing Kraus sampler, verified byte-for-byte
unchanged before adding new logic), removing the old 1-qubit/2-outcome
restriction. PyGSTiNoiseModel gains an instrument_outcome_qubits
parameter to declare which classical register a joint instrument's
outcome belongs to.

- instrumentreps.py: outcome_qubits field, key-shape validation,
  length-1 tuple-key normalization (fixes a latent bare-int/tuple key
  mismatch), and a with_qubit_labels override that only retargets
  outcome_qubits when it still matches qubit_labels.
- npsvstate.py: _sample_lazy extracted from _apply_kraus_lazy;
  instrument handler rewritten on top of it, dropping the old
  NotImplementedError/{0,1}-only restriction.
- pygstimodel.py: instrument_outcome_qubits constructor parameter;
  _get_instrument_rep detects joint vs. decomposable outcome shape and
  accepts non-numeric member labels (e.g. 'even'/'odd').
- conversion.py: no functional change, regression-tested against the
  new field.
- qsimstate.py: unchanged, still 1-qubit-only; deferred to a
  follow-up branch.

Tests cover decomposable and joint multiqubit instruments, a 3-outcome
joint channel, include_outcome suppression, lazy-stopping, and an
end-to-end PyGSTiNoiseModel -> get_reps -> SVState case. Full
tests/backends+core+internal suite passes (746 passed, 2 skipped, 2
xfailed); mypy error count unchanged from main (87).

* Add parity check tutorial

* Tutorial updates and CHANGELOG for #110

* Fix Imrz missed in merge

1345 of 1479 branches covered (90.94%)

Branch coverage included in aggregate %.

7399 of 8363 relevant lines covered (88.47%)

0.88 hits per line

Coverage Regressions

Lines Coverage ∆ File
19
81.14
-0.23% core/quantumprogram.py
16
92.2
-0.05% codepacks/codepack_5_1_3_quantinuum2022.py
15
78.82
0.17% core/instructions/builders.py
9
82.67
0.0% core/instructions/instructionstack.py
2
86.82
0.0% codepacks/codepack_surf17_surgery.py
1
97.33
0.0% backends/state/npsvstate.py
1
97.14
23.03% core/instructions/instructionlabel.py
1
91.35
-0.2% internal/encoder/hdf5encoder.py
Jobs
ID Job ID Ran Files Coverage
1 31952745738.1 16 Aug 2026 02:50PM UTC 61
88.84
GitHub Action Run
Source Files on build 31952745738
  • Tree
  • List 61
  • Changed 12
  • Source Changed 0
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #31952745738
  • 145f7217 on github
  • Prev Build on main (#31925509970)
  • Next Build on main (#31993797025)
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