Skip to main content

Report

Struct Report 

Source
pub struct Report {
    pub harness_version: String,
    pub fast: bool,
    pub cases: Vec<String>,
    pub skipped: Vec<String>,
    pub comparisons: Vec<Comparison>,
    pub gaps: Vec<Gap>,
    pub sources: Vec<Source>,
}
Expand description

A whole run: every comparison, and what it adds up to.

Fields§

§harness_version: String

The harness’s version.

§fast: bool

Whether the run was --fast.

§cases: Vec<String>

The cases it covered, in report order.

§skipped: Vec<String>

The locked cases it left out, which only a fast run has.

§comparisons: Vec<Comparison>

Every metric compared.

§gaps: Vec<Gap>

The cases that ran into a limit of hpr’s they declare, in case order.

§sources: Vec<Source>

Where each case’s reference came from, in case order.

Implementations§

Source§

impl Report

Source

pub fn passed(&self) -> bool

Whether every scored comparison passed.

Source

pub fn failures(&self) -> Vec<&Comparison>

The comparisons that failed.

Source

pub fn not_scored(&self) -> Vec<&Comparison>

The comparisons that were measured but held to no tolerance.

Source

pub fn worst_scored(&self) -> Option<(&Comparison, f64)>

The largest relative difference among the scored comparisons, as a fraction.

Source

pub fn reproduces( &self, committed_markdown: &str, committed_json: &str, ) -> Result<(), NotReproduced>

Whether this run reproduces a committed report, given the text of its latest.md and latest.json.

hpr is bit-identical on one platform, not across three (ADR-015, the validation harness’s decisions), so the numbers are compared at full precision from the JSON, where hpr’s value and the reference’s may each differ from the committed one by 2e-6 or by 1e-7 of itself, whichever is larger. Everything else is compared exactly: the harness version, the cases, what was left out, the sources, each comparison’s case, metric, source, tolerance, verdict and note, and each gap but for the Mach number the integrator narrowed onto 1. The two committed files come from one run on one platform, so latest.md must be latest.json‘s rendering letter for letter, and each committed difference must be its own two values’ difference. A tighter check would assert a cross-platform bit-identity hpr does not claim; comparing the rendered Markdown instead would fail on a platform whose last digit rounds a printed percentage the other way.

§Errors

NotReproduced, naming the first difference found, or why the committed JSON does not parse.

Source

pub fn to_markdown(&self) -> String

The report as Markdown: a summary, one table row per gated or not-scored metric, then predicted mode’s rows in their own table.

It carries no date, so a run that changes nothing changes no bytes and the committed report only moves when a number does.

Trait Implementations§

Source§

impl Clone for Report

Source§

fn clone(&self) -> Report

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 Report

Source§

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

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

impl<'de> Deserialize<'de> for Report

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 Report

Source§

fn eq(&self, other: &Report) -> 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 Serialize for Report

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 Report

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
§

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

§

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

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.