RSpice

RSPICE / VALIDATION METHODOLOGY

How RSpice compares results and records failures.

The source tree includes unit tests, integration tests, oracle replay for history-coupled models, and corpus harnesses for ngspice and Xyce decks. The generated status page separates configured gates from exact-revision CI results.

UNIT & INTEGRATION
Source test targets
ORACLE CORPORA
ngspice / Xyce paths
STATUS PAGE
Source revision identified
CI RESULT
Accepted only on exact SHA

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.

PUBLIC COUNTSThe validation status publishes source-controlled gate and manifest counts for its named commit. It labels a pass result only when a downloaded CI artifact identifies that exact commit.

02 / TEST LAYERS

Unit, replay, and corpus tests cover different failure modes.

01 / LOCAL

Unit & integration

Targets cover parser rules, device equations, matrix assembly, solver behavior, analyses, output conversion, and interface errors.

02 / HISTORY

Oracle replay

Retained reference inputs and outputs exercise history-dependent device runtimes and numerical state transitions.

03 / CORPUS

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.

CASEREQUIRED DATAINSUFFICIENT DATA
DC / operating pointNode and branch values, model and option identity, convergence outcome, and tolerances.A plotted point without solver and netlist provenance.
TransientProbe-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 / frequencyComplex values, sweep parameters, model identity, and an explicit comparison transform.A magnitude trace that hides phase, interpolation, or point selection.
Unsupported pathTyped refusal or quarantine entry tied to the input and capability boundary.Silently skipping an analysis and calling the deck a pass.
QUARANTINEA quarantined deck remains in the report with its reason, reproduction path, and owner until it becomes supported or is intentionally removed.

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.

shell / representative source targetsexact target names may evolve with source
cargo test --release -p rspice-core
cargo test --release -p rspice-core --test ngspice_regression
cargo test --release -p rspice-core --test xyce_regression

The 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.