Verification
QMBED separates four questions that are often conflated:
- does a public API exist;
- does it return the right numerical result;
- can it compose the full scientific workflow;
- is the production route usable at representative scale?
Repository CI
| Workflow | What it checks |
|---|---|
CI |
Rust formatting, Clippy, unit/integration tests, Rust 1.85 MSRV, macOS/Windows compilation, public-API semver checks, crates.io dry-run, and paper-scale visible contracts |
language-bindings |
C ABI, Python native and compatibility tests, Julia tests |
Python platform wheels |
Platform-wheel build, bundled-library discovery, and numerical smoke tests on Linux, macOS, and Windows |
documentation |
strict MkDocs, rustdoc, Documenter, and assembled-site links |
release |
synchronized versions, packages, bindings, and tagged release gate |
Before a tag is created, Prepare Julia native artifacts builds the shared
library on the supported native runners and opens the checked
Artifacts.toml PR. The full sequence is documented in
Release process.
The badges in the project README point directly to these workflows. A green
badge means the corresponding workflow passed on main; it is not a broader
claim than that workflow's checks.
Independent benchmark
QMBED Benchmark contains independent numerical oracles and twelve paper-shaped tasks:
- MBL shift-invert;
- XXZ Lanczos quench;
- Floquet full-unitary heating;
- spinful Hubbard and interacting SSH spectra;
- translation-sector XXZ;
- TFIM subspace fidelity;
- PXP and Bose–Hubbard quenches;
- Hubbard current;
- CoNb₂O₆ dynamical structure factor;
- cross-sector particle-addition spectrum.
Each timed case constructs its basis and Hamiltonian lazily, checks a physical invariant, performs one warm-up, and records five samples on a common single-thread runner. These workflows are literature anchored but are not complete paper reproductions.
Local gates
cargo fmt --check
cargo clippy --all-targets --all-features --locked -- -D warnings
cargo test --all-targets --all-features --locked
cargo test --release --test visible_contract -- --ignored --test-threads=1
cargo +1.85.0 check --all-targets --all-features --locked
cargo publish --dry-run --locked
For bindings: