Skip to main content

Comparison

Struct Comparison 

Source
pub struct Comparison {
    pub baseline_suite: String,
    pub current_suite: String,
    pub headline: Headline,
    pub excluded: Vec<ExcludedItem>,
    pub changes: Vec<Change>,
}
Expand description

What changed between two runs of the same suite.

The field order is the reading order, and it is deliberate: the headline (or the refusal to produce one) and the exclusions come before the changes, in the machine-readable form as much as in Comparison::summary.

Fields§

§baseline_suite: String

The suite the baseline reported on.

§current_suite: String

The suite the current run reported on.

§headline: Headline

The figures, or the reason there are none.

§excluded: Vec<ExcludedItem>

Items that appeared in both runs and could not be paired, with why.

§changes: Vec<Change>

Every change on the items that stayed paired, in current-run item order followed by removals.

Implementations§

Source§

impl Comparison

Source

pub fn is_unchanged(&self) -> bool

Returns true when nothing changed and nothing was excluded.

Source

pub fn deterministic_regressions(&self) -> Vec<&Change>

The deterministic regressions — behaviour that got worse.

Source

pub fn signal_regressions(&self) -> Vec<&Change>

The deterministic regressions that a control run says are larger than the harness’s own variation.

Without a noise floor this is every regression: an Unmeasured movement is not known to be noise, and treating the unknown as harmless is how a regression ships.

Source

pub fn judge_drifts(&self) -> Vec<&Change>

The judge drifts — the same behaviour, graded differently.

Source

pub fn derived_input_changes(&self) -> Vec<&Change>

The items whose declared-derived parts changed: the intended effect of the change being measured, and not a broken pairing.

Source

pub fn has_deterministic_regression(&self) -> bool

Returns true when at least one item’s deterministic assertions got worse.

Source

pub fn has_signal_regression(&self) -> bool

Returns true when at least one regression exceeds the measured noise floor. This is the question a merge gate should ask.

Source

pub fn has_judge_drift(&self) -> bool

Returns true when at least one judge score moved beyond the tolerance. This is a question about the measurement, not about the agent.

Source

pub fn corpus_defects(&self) -> Vec<&ExcludedItem>

The excluded items whose recorded parts changed.

These are not a result about the model and must never be read as one: something regenerated testimony about what the system actually emitted, which is a defect in the corpus or in the tooling that touched it. They are excluded from every figure, and this is where they are named.

Source

pub fn has_corpus_defect(&self) -> bool

Returns true when a recorded part changed anywhere in the corpus.

Source

pub fn excluded_share(&self) -> f64

The fraction of the paired corpus that could not be compared.

Source

pub fn is_withheld(&self) -> bool

Returns true when there is no headline figure to read, because too much of the corpus went unpaired.

Source

pub fn summary(&self) -> String

A readable rendering.

The first line is the pairing: how much of the corpus was compared and how much was dropped. The second is the headline, or the refusal. Only then come the individual changes, regressions first.

Trait Implementations§

Source§

impl Clone for Comparison

Source§

fn clone(&self) -> Self

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 Comparison

Source§

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

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

impl<'de> Deserialize<'de> for Comparison

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for Comparison

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for Comparison

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Comparison

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more