Skip to main content

ResidualProjectionFixture

Struct ResidualProjectionFixture 

Source
pub struct ResidualProjectionFixture {
    pub fixture_sha256_hex: String,
    pub metadata: BTreeMap<String, String>,
    pub declared_num_windows: u32,
    pub declared_num_signals: u32,
    pub declared_healthy_window_end: u32,
    pub rows: Vec<Vec<Option<f64>>>,
}
Expand description

Parsed # residual-projection v2 fixture.

WHY: The TSV header carries provenance metadata (DOI, URL, archive SHA-256, num_windows, num_signals, healthy_window_end, license) that the audit’s dataset_manifest.toml must cite verbatim, and the data rows are the residual projection that the event-lowering rule consumes. Carrying both in one struct keeps the metadata + data co-located so the audit report cannot accidentally claim metadata from one fixture against data from another.

Eq is intentionally not derived because cell values are f64 (NaN is already collapsed to None by the parser, so the remaining floats are finite, but f64 still rejects Eq at the type level). PartialEq is sufficient for the byte-replay determinism we test.

Fields§

§fixture_sha256_hex: String

SHA-256 of the input file bytes (hex lowercase, 64 chars). This is the load-bearing provenance pin: the loader rejects mismatched bytes before parsing, so a corrupted fixture cannot silently produce a valid-looking CaseFile.

§metadata: BTreeMap<String, String>

Every # key=value comment line collected in encounter order then re-sorted into a BTreeMap for deterministic iteration. Keys without = (e.g. raw comment text) are NOT recorded; the audit’s dataset_manifest.toml mirrors only key=value entries.

§declared_num_windows: u32

Declared row count from the # num_windows= header. May not equal rows.len(): some fixtures publish a num_windows < observed rows (extra metadata-noise rows past the declared count). The loader reports both; the lowering uses the observed rows.len().

§declared_num_signals: u32

Declared column count from the # num_signals= header. Must equal every data row’s column count; the parser rejects rows that diverge.

§declared_healthy_window_end: u32

Declared healthy-window boundary from # healthy_window_end=. Recorded for the audit report; the loader does NOT use it to split the data (the dispatcher’s bank stage performs admission, not pre-classification by the loader).

§rows: Vec<Vec<Option<f64>>>

Window-major × signal-minor matrix of cell values. None represents a nan token in the TSV — the lowering rule skips these cells.

Trait Implementations§

Source§

impl Clone for ResidualProjectionFixture

Source§

fn clone(&self) -> ResidualProjectionFixture

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ResidualProjectionFixture

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ResidualProjectionFixture

Source§

fn default() -> ResidualProjectionFixture

Returns the “default value” for a type. Read more
Source§

impl PartialEq for ResidualProjectionFixture

Source§

fn eq(&self, other: &ResidualProjectionFixture) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ResidualProjectionFixture

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.