Skip to content

Validation

Module: spectralbridge.validation.

Structured evidence records for SpectralBridge validation campaigns.

Validation campaigns are distinct from ordinary unit tests. A unit test protects one contract; a campaign runs a named operation over a matrix of input variations and preserves the diagnostics as publication-facing evidence.

API glossary ยท Workflow / scientific context

Signatures and documentation below are collected from the current source. Advanced objects are not newly declared stable by inclusion here.

Audience: advanced.

ValidationObservation dataclass

ValidationObservation(diagnostics: Mapping[str, Any], checks: Mapping[str, bool], notes: tuple[str, ...] = ())

Diagnostics and explicit checks returned by one validation variation.

Audience: advanced.

ValidationCase dataclass

ValidationCase(module: str, variation_id: str, description: str, inputs: Mapping[str, Any], expected: Mapping[str, Any], runner: ValidationRunner | None, skip_reason: str | None = None)

One operation/input combination in a validation campaign.

Audience: advanced.

ValidationResult dataclass

ValidationResult(module: str, variation_id: str, description: str, inputs: Mapping[str, Any], expected: Mapping[str, Any], status: str, diagnostics: Mapping[str, Any], checks: Mapping[str, bool], duration_seconds: float, notes: tuple[str, ...] = (), error: str | None = None, skip_reason: str | None = None)

Serializable result from one :class:ValidationCase.

to_dict

to_dict() -> dict[str, Any]

Audience: advanced.

run_case

run_case(case: ValidationCase) -> ValidationResult

Run one case, converting failures and skips into structured evidence.

Audience: advanced.

run_campaign

run_campaign(cases: Iterable[ValidationCase], *, campaign_id: str, mode: str, repo_root: Path, metadata: Mapping[str, Any] | None = None) -> dict[str, Any]

Run cases and return a versioned, machine-readable campaign record.

Audience: advanced.

write_campaign

write_campaign(campaign: Mapping[str, Any], path: Path) -> Path

Atomically write one campaign JSON file.

Audience: advanced.

load_campaign

load_campaign(path: Path) -> dict[str, Any]

Load and minimally validate a campaign record.