01 / PRINCIPLE
Solved, unsupported, non-convergent, timed-out, and mismatched are separate states.
Harness output records whether a deck solved, requested unsupported behavior, failed convergence, exceeded its watchdog, produced non-finite data, or differed from its reference beyond tolerance.
02 / TEST LAYERS
Unit, replay, and corpus tests cover different failure modes.
Unit & integration
Targets cover parser rules, device equations, matrix assembly, solver behavior, analyses, output conversion, and interface errors.
Oracle replay
Retained reference inputs and outputs exercise history-dependent device runtimes and numerical state transitions.
External decks
ngspice and Xyce harnesses discover retained decks, compare executed outputs, report unsupported cases, and supervise each process with a watchdog.
The ngspice harness uses probe-aware absolute floors with relative tolerance. The Xyce harness retains unsupported wrapper requirements in its manifest rather than omitting those decks.
03 / COMPARISON INPUTS
Match comparison data to the analysis.
| CASE | REQUIRED DATA | INSUFFICIENT DATA |
|---|---|---|
| DC / operating point | Node and branch values, model and option identity, convergence outcome, and tolerances. | A plotted point without solver and netlist provenance. |
| Transient | Probe-aware waveform comparison, accepted time grid or locked-grid replay where timing matters, and measurement checks. | A visual overlay with no sample, tolerance, or timebase definition. |
| AC / frequency | Complex values, sweep parameters, model identity, and an explicit comparison transform. | A magnitude trace that hides phase, interpolation, or point selection. |
| Unsupported path | Typed refusal or quarantine entry tied to the input and capability boundary. | Silently skipping an analysis and calling the deck a pass. |
04 / RERUN TARGETS
Run tests against the exact source revision.
Representative validation commands are documented in the source repository. Run them from the exact checkout and retain the output with the build/toolchain context when evaluating a change.
cargo test --release -p rspice-core
cargo test --release -p rspice-core --test ngspice_regression
cargo test --release -p rspice-core --test xyce_regressionThe source repository defines current target names, feature flags, fixtures, platform requirements, tolerance policy, and CI wiring.
05 / RELEASE REPORT
Requirements for a generated validation summary.
- Pin every result: source commit, reference corpus revision, model bundle, host, toolchain, options, and platform belong with the report.
- Publish the exceptions: unsupported, skipped, quarantined, and performance-limited cases must stay queryable rather than being collapsed into a headline percentage.
- Link raw artifacts: release summaries link to machine-readable reports, not only charts or prose.
- Separate targets: engine, desktop UI, browser, and hosted-service results use independent qualification gates.