ScenarioComparison class

One scenario's two runs, compared.

Constructors

ScenarioComparison({required String scenario, required List<ComparedItem> items, required List<BranchDelta> branches, required ComparedState state, Map<String, ({FrameRef? base, FrameRef? head})> frames = const {}, String? package, List<String> baseErrors = const [], List<String> headErrors = const [], int? baseMs, int? headMs})
const
ScenarioComparison.notCompared({required String scenario, required String inconclusive, String? package, List<String> baseErrors = const [], List<String> headErrors = const [], int? baseMs, int? headMs})
A scenario that was replayed and did not produce a result on one side or both — see inconclusive.
const
ScenarioComparison.notRun({required String scenario, required ComparedState state, String? package})
A scenario that was never replayed — one that exists on a single side, or one the skip rule answered without running anything.
const

Properties

baseErrors → List<String>
What the base side failed on, one message each, first line only — empty when it did not fail.
final
baseMs → int?
How long the base side's replay took, in milliseconds — null for a side read from the cache, which this run did not replay.
final
branches → List<BranchDelta>
Branches that exist on one side only — one row each, however many steps they hold.
final
compared → bool
Whether both sides produced a result and were compared. False for a scenario that was replayed and was inconclusive.
no setter
frames → Map<String, ({FrameRef? base, FrameRef? head})>
Each step's two frames, by the id its ComparedItem carries.
final
hashCode → int
The hash code for this object.
no setterinherited
headErrors → List<String>
What the head side failed on — see baseErrors.
final
headMs → int?
How long the head side's replay took — see baseMs.
final
inconclusive → String?
Why this scenario was not compared, when it was replayed and one side did not produce a result: the harness gave up on it, or its outcome did not reproduce when it was replayed again. One sentence naming the side, what happened and what to do about it.
final
items → List<ComparedItem>
One per step: matched pairs with their channels, plus the steps that exist on one side only.
final
package → String?
Which package declared it, worktree-relative — the twin of ComparedItem.package, and recorded for the same reason. Its steps carry none: they take theirs from here.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
scenario → String
<file>#<name>.
final
state → ComparedState
The scenario's own verdict, worst of what its steps said.
final

Methods

inPackage(String package, {required bool qualify}) → ScenarioComparison
The same scenario, addressed inside package — the twin of ComparedItem.inPackage, and the same rule.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() → Map<String, Object?>
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

fromJson(Map<String, Object?> json) → ScenarioComparison
A scenario read back off index.json — the exported page's side of toJson.