pub struct TestCase {
pub circuit: String,
pub description: String,
pub signals: Vec<SignalConfig>,
pub metrics: Vec<MetricConfig>,
pub pass_criteria: PassCriteria,
pub warmup_trim_ms: Option<f64>,
pub pending_reference: bool,
pub pro_circuit_path: Option<String>,
}Expand description
A single test case.
Fields§
§circuit: StringPath to the circuit file (.pedal for WDF, .spice for reference)
description: String§signals: Vec<SignalConfig>§metrics: Vec<MetricConfig>§pass_criteria: PassCriteria§warmup_trim_ms: Option<f64>Per-test warmup trim in milliseconds. None means use the global
GlobalConfig::warmup_trim_ms value.
pending_reference: boolPending-reference flag. When true AND the golden .npy is missing,
the test is reported as PENDING (skipped) and excluded from BOTH the
passed count and the total in the pass-rate gate — so a committed test
whose ngspice golden has not yet been generated does not move the gate
denominator. Once the golden file is dropped in, the test runs and is
compared normally REGARDLESS of this flag (auto-activation, no code
change). A false (default) test with a missing golden still FAILS
loudly, so accidental golden deletion is caught.
pro_circuit_path: Option<String>Path to the WDF .pedal source relative to the pedalkernel-pro repo root.
Set this for circuits whose .pedal files are proprietary (live in
pedalkernel-pro, never committed to the public engine repo). When
the public circuit path is not found in --circuits, the bootstrap
command falls back to probing ancestor directories for
pedalkernel-pro/<pro_circuit_path> via the same sibling-directory
search used by pro_pedal::load_pro_pedal_sub.
None means no private fallback: the circuit must exist at circuit.
Implementations§
Source§impl TestCase
impl TestCase
Sourcepub fn effective_warmup_trim_ms(&self, global: &GlobalConfig) -> f64
pub fn effective_warmup_trim_ms(&self, global: &GlobalConfig) -> f64
Resolve the effective warmup trim in milliseconds, preferring the per-test override when set, otherwise falling back to the global value.
Sourcepub fn effective_settle_ms(&self, global: &GlobalConfig) -> f64
pub fn effective_settle_ms(&self, global: &GlobalConfig) -> f64
Resolve the effective STEADY-STATE settle window in milliseconds.
A per-test warmup_trim_ms override IS that test’s settle window (a slow
circuit sets it explicitly, e.g. 800 ms for the BA283’s 10 µF coupling
caps); otherwise the conservative GlobalConfig::settle_ms default
applies. Generators run long enough to cover this window and metrics are
computed only on the settled tail past it.
Sourcepub fn effective_profile(
&self,
suite_name: &str,
test_name: &str,
) -> ValidationProfile
pub fn effective_profile( &self, suite_name: &str, test_name: &str, ) -> ValidationProfile
Classify the test into a reporting bucket without changing pass/fail behavior. This keeps threshold intent visible while legacy configs are migrated toward explicit profiles.