pub enum OutputStability {
NotMeasured,
Stable,
Unstable,
Incomplete,
}Expand description
A case’s output-level stability across repeated samples — independent of pass/fail. flaky
only tells you the verdict flipped; a case can fail every sample with a different wrong
answer each time and flaky never notices, because pass never changes. This classification
is derived on read from samples/answer_dist rather than stored, so it can never drift out
of sync with the data it summarizes and needs no new field or legacy-report migration.
Variants§
NotMeasured
--record-answers was off, or samples <= 1 (nothing to compare across samples).
Stable
Every sample produced an answer, and every answer had the same textual signature.
Unstable
Two or more distinct textual answer signatures were seen across samples. This is an
upper bound on real (semantic) instability, not an exact count: render_answer is a
textual signature, not the comparator’s semantic one, so set/unordered match modes or a
bare number-scale difference (42 vs 42.0) can over-split a comparator-equal result into
separate buckets here. flaky_cases/flaky is the complementary exact lower bound —
it only ever fires on an actual verdict flip, never on textual noise — so the two numbers
are reported side by side, both labelled, rather than folded into one bare count that would
read as precise.
Incomplete
Answer buckets summed to fewer than samples — at least one sample produced no answer at
all (an outright invocation failure, not a parseable-but-wrong result). Never classified as
Stable: a missing sample is not agreement, it’s missing data.
Trait Implementations§
Source§impl Clone for OutputStability
impl Clone for OutputStability
impl Copy for OutputStability
Source§impl Debug for OutputStability
impl Debug for OutputStability
impl Eq for OutputStability
Source§impl PartialEq for OutputStability
impl PartialEq for OutputStability
impl StructuralPartialEq for OutputStability
Auto Trait Implementations§
impl Freeze for OutputStability
impl RefUnwindSafe for OutputStability
impl Send for OutputStability
impl Sync for OutputStability
impl Unpin for OutputStability
impl UnsafeUnpin for OutputStability
impl UnwindSafe for OutputStability
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.