Package-level declarations

Types

Link copied to clipboard
sealed interface BisectApply
Link copied to clipboard
data class BisectPlan(val green: String, val red: String, val greenSha256: String, val redSha256: String, val flips: List<Flip>, val trials: List<Trial> = emptyList())

A bisection over the static attribute differences of a green and a red capsule, run by hand or by a script: each pending set is a test of the green environment with those attributes set to their red values. The plan is the whole state; state replays Ddmin over the recorded trials and stops at the first set that has no recorded outcome. The full set is the red environment and counts as failing; the empty set is the green one and passes.

Link copied to clipboard
sealed interface BisectState
Link copied to clipboard
object Ddmin
Link copied to clipboard
data class DdminResult<T>(val minimal: List<T>, val sequence: List<List<Int>>, val unresolved: Int)

DdminResult.minimal keeps the input order. DdminResult.sequence lists the index subsets passed to the test, in call order, memoized repeats excluded; calls is its size. DdminResult.unresolved counts tested subsets that came back UNRESOLVED, so a nonzero value means those subsets were not proven PASS.

Link copied to clipboard
data class Flip(val path: String, val green: String?, val red: String?)

One static attribute that differs; green or red is null when the side lacks it.

Link copied to clipboard
data class Trial(val set: List<Int>, val outcome: TrialOutcome)

A tested set of Flip indices (ascending) and what the test did with it.

Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard