jhshuai/moontestledger/history does not have a README file

    Change

    Change::equal

    fn Change::equal(Change, Change) -> Bool

    Change::not_equal

    fn Change::not_equal(x : Change, y : Change) -> Bool

    Change::to_repr

    ChangeKind

    pub(all) enum ChangeKind {
    Added
    Removed
    Regressed
    Improved
    Changed
    Unchanged
    Unknown
    } derive(Eq,
    Debug
    )

    ChangeKind::equal

    fn ChangeKind::equal(ChangeKind, ChangeKind) -> Bool

    ChangeKind::not_equal

    fn ChangeKind::not_equal(x : ChangeKind, y : ChangeKind) -> Bool

    Comparison

    type Comparison

    Comparison::changes

    fn Comparison::changes(self : Comparison) -> Array[Change]

    Return independent records with both sides' full attempt and problem evidence.

    Comparison::comparable

    fn Comparison::comparable(self : Comparison) -> Bool

    Comparison::encode

    fn Comparison::encode(self : Comparison) -> String

    A derived status-difference view. Full raw source stays in the archives; changes(), before() and after() retain full attempts and diagnostics.

    Comparison::exit_code

    fn Comparison::exit_code(self : Comparison) -> Int

    3: inconclusive; 1: new adverse result (including retry instability); 0: no new adverse result. Existing failures still fail the separate verify gate.

    Comparison::policy_changed

    fn Comparison::policy_changed(self : Comparison) -> Bool

    RepetitionCase

    pub(all) struct RepetitionCase {
    environment : String
    key :
    CaseKey

    kind : RepetitionKind
    pass_attempts : Int
    failed_attempts : Int
    error_attempts : Int
    skipped_attempts : Int
    runs_with_pass : Int
    runs_with_failure : Int
    recovered_runs : Int
    incomplete_runs : Int
    samples : Array[RepetitionSample]
    } derive(Eq,
    Debug
    )

    RepetitionCase::equal

    RepetitionCase::not_equal

    fn RepetitionCase::not_equal(x : RepetitionCase, y : RepetitionCase) -> Bool

    RepetitionKind

    pub(all) enum RepetitionKind {
    MixedOutcomes
    FailureObserved
    PassObserved
    SkipsOnly
    NoObservations
    } derive(Eq,
    Debug
    )

    Observed attempt outcomes at one revision, not a statistical diagnosis.

    RepetitionKind::equal

    RepetitionKind::not_equal

    fn RepetitionKind::not_equal(x : RepetitionKind, y : RepetitionKind) -> Bool

    RepetitionSample

    pub(all) struct RepetitionSample {
    run_id : String
    case_summary :
    CaseSummary

    } derive(Eq,
    Debug
    )

    RepetitionSample::equal

    RepetitionSample::not_equal

    fn RepetitionSample::not_equal(x : RepetitionSample, y : RepetitionSample) -> Bool

    Repetitions

    type Repetitions

    Repetitions::complete

    fn Repetitions::complete(self : Repetitions) -> Bool

    Repetitions::encode

    Deterministic derived counts and run references. Full attempt/problem evidence remains available in rows()/summaries(), and original XML through source().

    Repetitions::exit_code

    fn Repetitions::exit_code(self : Repetitions) -> Int

    3 incomplete; 1 observed pass and failure/error for the same exact test; 0 no observed mixture. This is not an all-tests-pass gate or a confidence score.

    Repetitions::rows

    Repetitions::source

    fn Repetitions::source(self : Repetitions, run_id : String, report_id : String) -> String?

    Repetitions::summaries

    analyze_repetitions

    Analyze independent runs at the same revision/policy and exact environment/ testcase inventory. Shard moves and selective retry counts may differ. Duplicate run IDs are rejected; incomplete evidence stays inconclusive.

    compare_evidence

    Compare validated, separate runs. Environment and exact case identity match; shard placement can change. Missing evidence, removed inventory or a changed recovery policy prevents a conclusive regression gate.