{"abstract":"After the final step the sequence never returns to the initial step.","category":"PLC ladder logic scan cycles","checks":8,"contract":"Cyclic step sequence with one active step. steps is a list of [min_time_ms, transition_tag]. Each scan [dt, inputs] first adds dt to the step time unless the step became active on the previous scan, then fires the transition if step time >= min_time and the transition tag is true. At most one transition fires per scan; after the last step the sequence returns to step 0; the new step time is 0. Step 0 is active before the first scan as if just entered. Return [active_step, step_time, entered_this_scan].","evaluation_group":"w2-plc-ladder-logic-scan-cycles-sfc-step-sequencer","failed_approach":"Wrapping to step 1 skips the initial step on every cycle.","family":"w2-plc-ladder-logic-scan-cycles-sfc-step-sequencer-sequence-wrap","id":"FA-92151","implementations":{"attempt":{"sha256":"91945a5a6770321b753ffa18989b491fe2e1f1c61caa86b742f5d852b5039635","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(steps, scans):\n    active = 0\n    elapsed = 0\n    entered = True\n    out = []\n    for dt, inputs in scans:\n        if not entered:\n            elapsed += dt\n        entered = False\n        min_ms, cond = steps[active]\n        if elapsed >= min_ms and inputs.get(cond, False):\n            active = (active + 1) % len(steps) or 1\n            elapsed = 0\n            entered = True\n        out.append([active, elapsed, entered])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 1',\n   [[[0, 'T2'], [100, 'T3'], [100, 'T2'], [100, 'T2']],\n    [[25, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 50, False],\n    [1, 90, False],\n    [1, 110, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 50, False]]],\n  ['control: scenario 2',\n   [[[20, 'T3'], [20, 'T3'], [20, 'T1']],\n    [[50, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 40, False],\n    [1, 80, False],\n    [1, 105, False]]],\n  ['control: scenario 3',\n   [[[0, 'T2'], [100, 'T3'], [100, 'T2']],\n    [[25, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 20, False],\n    [1, 40, False],\n    [1, 80, False],\n    [2, 0, True]]],\n  ['regression: scenario 4',\n   [[[0, 'T2'], [0, 'T3'], [0, 'T3'], [0, 'T2']],\n    [[20, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [2, 0, True],\n    [3, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [1, 0, True],\n    [2, 0, True]]]],\n [['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['regression: scenario 1',\n   [[[100, 'T3'], [0, 'T1']],\n    [[50, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [0, 65, False],\n    [0, 75, False],\n    [1, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 40, False],\n    [0, 50, False],\n    [0, 75, False]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 2',\n   [[[100, 'T2'], [0, 'T1'], [50, 'T2'], [20, 'T2']],\n    [[50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [0, 40, False],\n    [0, 65, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 10, False],\n    [2, 20, False],\n    [2, 45, False],\n    [2, 70, False],\n    [2, 120, False],\n    [3, 0, True],\n    [3, 0, False]]],\n  ['regression: scenario 3',\n   [[[0, 'T2'], [0, 'T1'], [50, 'T1']],\n    [[25, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 25, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 25, False],\n    [0, 0, True],\n    [0, 0, False],\n    [1, 0, True]]],\n  ['regression: scenario 4',\n   [[[0, 'T1'], [20, 'T2'], [20, 'T3']],\n    [[40, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': False, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 40, False],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 40, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False]]]],\n [['regression: scenario 1',\n   [[[0, 'T3'], [20, 'T2'], [0, 'T2']],\n    [[40, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 50, False],\n    [0, 0, True]]],\n  ['regression: scenario 5',\n   [[[100, 'T1'], [0, 'T1']],\n    [[10, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [0, 30, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 40, False],\n    [1, 50, False],\n    [1, 100, False],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 25, False],\n    [0, 65, False],\n    [1, 0, True]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 2',\n   [[[50, 'T3'], [0, 'T2'], [100, 'T1']],\n    [[40, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [0, 80, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 25, False],\n    [1, 35, False],\n    [1, 60, False],\n    [2, 0, True],\n    [2, 0, False]]],\n  ['control: scenario 3',\n   [[[50, 'T2'], [0, 'T3'], [100, 'T1'], [20, 'T3']],\n    [[25, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 25, False],\n    [0, 35, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 40, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False],\n    [2, 60, False],\n    [3, 0, True],\n    [3, 0, False]]]],\n [['regression: scenario 7',\n   [[[0, 'T1'], [0, 'T2'], [0, 'T3']],\n    [[20, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': True}],\n     [25, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[1, 0, True],\n    [1, 0, False],\n    [2, 0, True],\n    [0, 0, True],\n    [1, 0, True],\n    [2, 0, True],\n    [0, 0, True],\n    [1, 0, True],\n    [2, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [1, 0, True],\n    [2, 0, True],\n    [0, 0, True]]],\n  ['regression: scenario 8',\n   [[[0, 'T2'], [0, 'T1']],\n    [[40, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [1, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [0, 0, True],\n    [0, 0, False]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 1',\n   [[[50, 'T1'], [50, 'T1'], [100, 'T3'], [20, 'T3']],\n    [[20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 50, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 25, False]]],\n  ['control: scenario 2',\n   [[[0, 'T2'], [20, 'T3'], [0, 'T3'], [20, 'T1']],\n    [[25, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 60, False], [1, 0, True], [1, 0, False], [2, 0, True]]]],\n [['regression: scenario 11',\n   [[[0, 'T2'], [0, 'T1'], [0, 'T1'], [0, 'T2']],\n    [[40, {'T1': False, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 25, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 10, False],\n    [3, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 40, False],\n    [0, 65, False],\n    [1, 0, True],\n    [2, 0, True]]],\n  ['regression: scenario 13',\n   [[[20, 'T3'], [0, 'T1']],\n    [[25, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[0, 0, False], [1, 0, True], [1, 0, False], [1, 40, False], [1, 90, False], [0, 0, True]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 1',\n   [[[0, 'T2'], [100, 'T3'], [100, 'T1'], [20, 'T2']],\n    [[40, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [0, 50, False],\n    [0, 60, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 20, False],\n    [1, 40, False],\n    [1, 80, False],\n    [1, 90, False]]],\n  ['control: scenario 2',\n   [[[20, 'T1'], [20, 'T2'], [100, 'T3'], [0, 'T1']],\n    [[50, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 35, False],\n    [1, 85, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"8151737e278ded97aafbdfda45259ec3632b201445078cbf41f00f7cc4e959cb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(steps, scans):\n    active = 0\n    elapsed = 0\n    entered = True\n    out = []\n    for dt, inputs in scans:\n        if not entered:\n            elapsed += dt\n        entered = False\n        min_ms, cond = steps[active]\n        if elapsed >= min_ms and inputs.get(cond, False):\n            active = min(active + 1, len(steps) - 1)\n            elapsed = 0\n            entered = True\n        out.append([active, elapsed, entered])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 1',\n   [[[0, 'T2'], [100, 'T3'], [100, 'T2'], [100, 'T2']],\n    [[25, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 50, False],\n    [1, 90, False],\n    [1, 110, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 50, False]]],\n  ['control: scenario 2',\n   [[[20, 'T3'], [20, 'T3'], [20, 'T1']],\n    [[50, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 40, False],\n    [1, 80, False],\n    [1, 105, False]]],\n  ['control: scenario 3',\n   [[[0, 'T2'], [100, 'T3'], [100, 'T2']],\n    [[25, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 20, False],\n    [1, 40, False],\n    [1, 80, False],\n    [2, 0, True]]],\n  ['regression: scenario 4',\n   [[[0, 'T2'], [0, 'T3'], [0, 'T3'], [0, 'T2']],\n    [[20, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [2, 0, True],\n    [3, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [1, 0, True],\n    [2, 0, True]]]],\n [['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['regression: scenario 1',\n   [[[100, 'T3'], [0, 'T1']],\n    [[50, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [0, 65, False],\n    [0, 75, False],\n    [1, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 40, False],\n    [0, 50, False],\n    [0, 75, False]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 2',\n   [[[100, 'T2'], [0, 'T1'], [50, 'T2'], [20, 'T2']],\n    [[50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [0, 40, False],\n    [0, 65, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 10, False],\n    [2, 20, False],\n    [2, 45, False],\n    [2, 70, False],\n    [2, 120, False],\n    [3, 0, True],\n    [3, 0, False]]],\n  ['regression: scenario 3',\n   [[[0, 'T2'], [0, 'T1'], [50, 'T1']],\n    [[25, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 25, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 25, False],\n    [0, 0, True],\n    [0, 0, False],\n    [1, 0, True]]],\n  ['regression: scenario 4',\n   [[[0, 'T1'], [20, 'T2'], [20, 'T3']],\n    [[40, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': False, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 40, False],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 40, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False]]]],\n [['regression: scenario 1',\n   [[[0, 'T3'], [20, 'T2'], [0, 'T2']],\n    [[40, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 50, False],\n    [0, 0, True]]],\n  ['regression: scenario 5',\n   [[[100, 'T1'], [0, 'T1']],\n    [[10, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [0, 30, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 40, False],\n    [1, 50, False],\n    [1, 100, False],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 25, False],\n    [0, 65, False],\n    [1, 0, True]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 2',\n   [[[50, 'T3'], [0, 'T2'], [100, 'T1']],\n    [[40, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [0, 80, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 25, False],\n    [1, 35, False],\n    [1, 60, False],\n    [2, 0, True],\n    [2, 0, False]]],\n  ['control: scenario 3',\n   [[[50, 'T2'], [0, 'T3'], [100, 'T1'], [20, 'T3']],\n    [[25, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 25, False],\n    [0, 35, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 40, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False],\n    [2, 60, False],\n    [3, 0, True],\n    [3, 0, False]]]],\n [['regression: scenario 7',\n   [[[0, 'T1'], [0, 'T2'], [0, 'T3']],\n    [[20, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': True}],\n     [25, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[1, 0, True],\n    [1, 0, False],\n    [2, 0, True],\n    [0, 0, True],\n    [1, 0, True],\n    [2, 0, True],\n    [0, 0, True],\n    [1, 0, True],\n    [2, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [1, 0, True],\n    [2, 0, True],\n    [0, 0, True]]],\n  ['regression: scenario 8',\n   [[[0, 'T2'], [0, 'T1']],\n    [[40, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [1, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [0, 0, True],\n    [0, 0, False]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 1',\n   [[[50, 'T1'], [50, 'T1'], [100, 'T3'], [20, 'T3']],\n    [[20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 50, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 25, False]]],\n  ['control: scenario 2',\n   [[[0, 'T2'], [20, 'T3'], [0, 'T3'], [20, 'T1']],\n    [[25, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 60, False], [1, 0, True], [1, 0, False], [2, 0, True]]]],\n [['regression: scenario 11',\n   [[[0, 'T2'], [0, 'T1'], [0, 'T1'], [0, 'T2']],\n    [[40, {'T1': False, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 25, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 10, False],\n    [3, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 40, False],\n    [0, 65, False],\n    [1, 0, True],\n    [2, 0, True]]],\n  ['regression: scenario 13',\n   [[[20, 'T3'], [0, 'T1']],\n    [[25, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[0, 0, False], [1, 0, True], [1, 0, False], [1, 40, False], [1, 90, False], [0, 0, True]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 1',\n   [[[0, 'T2'], [100, 'T3'], [100, 'T1'], [20, 'T2']],\n    [[40, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [0, 50, False],\n    [0, 60, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 20, False],\n    [1, 40, False],\n    [1, 80, False],\n    [1, 90, False]]],\n  ['control: scenario 2',\n   [[[20, 'T1'], [20, 'T2'], [100, 'T3'], [0, 'T1']],\n    [[50, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 35, False],\n    [1, 85, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"5a0dfccac74bf96263ecbc87e4200789f684834b39ff0408f2c8b806ebb06f0a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(steps, scans):\n    active = 0\n    elapsed = 0\n    entered = True\n    out = []\n    for dt, inputs in scans:\n        if not entered:\n            elapsed += dt\n        entered = False\n        min_ms, cond = steps[active]\n        if elapsed >= min_ms and inputs.get(cond, False):\n            active = (active + 1) % len(steps)\n            elapsed = 0\n            entered = True\n        out.append([active, elapsed, entered])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 1',\n   [[[0, 'T2'], [100, 'T3'], [100, 'T2'], [100, 'T2']],\n    [[25, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 50, False],\n    [1, 90, False],\n    [1, 110, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 50, False]]],\n  ['control: scenario 2',\n   [[[20, 'T3'], [20, 'T3'], [20, 'T1']],\n    [[50, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 40, False],\n    [1, 80, False],\n    [1, 105, False]]],\n  ['control: scenario 3',\n   [[[0, 'T2'], [100, 'T3'], [100, 'T2']],\n    [[25, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 20, False],\n    [1, 40, False],\n    [1, 80, False],\n    [2, 0, True]]],\n  ['regression: scenario 4',\n   [[[0, 'T2'], [0, 'T3'], [0, 'T3'], [0, 'T2']],\n    [[20, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [2, 0, True],\n    [3, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [1, 0, True],\n    [2, 0, True]]]],\n [['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['regression: scenario 1',\n   [[[100, 'T3'], [0, 'T1']],\n    [[50, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [0, 65, False],\n    [0, 75, False],\n    [1, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 40, False],\n    [0, 50, False],\n    [0, 75, False]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 2',\n   [[[100, 'T2'], [0, 'T1'], [50, 'T2'], [20, 'T2']],\n    [[50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [0, 40, False],\n    [0, 65, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 10, False],\n    [2, 20, False],\n    [2, 45, False],\n    [2, 70, False],\n    [2, 120, False],\n    [3, 0, True],\n    [3, 0, False]]],\n  ['regression: scenario 3',\n   [[[0, 'T2'], [0, 'T1'], [50, 'T1']],\n    [[25, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 25, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 25, False],\n    [0, 0, True],\n    [0, 0, False],\n    [1, 0, True]]],\n  ['regression: scenario 4',\n   [[[0, 'T1'], [20, 'T2'], [20, 'T3']],\n    [[40, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': False, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 40, False],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 40, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False]]]],\n [['regression: scenario 1',\n   [[[0, 'T3'], [20, 'T2'], [0, 'T2']],\n    [[40, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 50, False],\n    [0, 0, True]]],\n  ['regression: scenario 5',\n   [[[100, 'T1'], [0, 'T1']],\n    [[10, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [0, 30, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 40, False],\n    [1, 50, False],\n    [1, 100, False],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 25, False],\n    [0, 65, False],\n    [1, 0, True]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 2',\n   [[[50, 'T3'], [0, 'T2'], [100, 'T1']],\n    [[40, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [0, 80, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 25, False],\n    [1, 35, False],\n    [1, 60, False],\n    [2, 0, True],\n    [2, 0, False]]],\n  ['control: scenario 3',\n   [[[50, 'T2'], [0, 'T3'], [100, 'T1'], [20, 'T3']],\n    [[25, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 25, False],\n    [0, 35, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 40, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False],\n    [2, 60, False],\n    [3, 0, True],\n    [3, 0, False]]]],\n [['regression: scenario 7',\n   [[[0, 'T1'], [0, 'T2'], [0, 'T3']],\n    [[20, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': True}],\n     [25, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[1, 0, True],\n    [1, 0, False],\n    [2, 0, True],\n    [0, 0, True],\n    [1, 0, True],\n    [2, 0, True],\n    [0, 0, True],\n    [1, 0, True],\n    [2, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [1, 0, True],\n    [2, 0, True],\n    [0, 0, True]]],\n  ['regression: scenario 8',\n   [[[0, 'T2'], [0, 'T1']],\n    [[40, {'T1': True, 'T2': False, 'T3': True}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 20, False],\n    [1, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [0, 0, True],\n    [0, 0, False]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 1',\n   [[[50, 'T1'], [50, 'T1'], [100, 'T3'], [20, 'T3']],\n    [[20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 50, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 25, False]]],\n  ['control: scenario 2',\n   [[[0, 'T2'], [20, 'T3'], [0, 'T3'], [20, 'T1']],\n    [[25, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 60, False], [1, 0, True], [1, 0, False], [2, 0, True]]]],\n [['regression: scenario 11',\n   [[[0, 'T2'], [0, 'T1'], [0, 'T1'], [0, 'T2']],\n    [[40, {'T1': False, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 25, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 10, False],\n    [3, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 40, False],\n    [0, 65, False],\n    [1, 0, True],\n    [2, 0, True]]],\n  ['regression: scenario 13',\n   [[[20, 'T3'], [0, 'T1']],\n    [[25, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}]]],\n   [[0, 0, False], [1, 0, True], [1, 0, False], [1, 40, False], [1, 90, False], [0, 0, True]]],\n  ['regression: zero-time step chain',\n   [[[20, 'A'], [0, 'B'], [30, 'C']],\n    [[10, {'A': True}],\n     [10, {'A': True}],\n     [10, {'A': True, 'B': True}],\n     [15, {'B': True}],\n     [15, {'C': True}],\n     [15, {'C': True}],\n     [15, {'C': True}]]],\n   [[0, 0, False], [0, 10, False], [1, 0, True], [2, 0, True], [2, 0, False], [2, 15, False], [0, 0, True]]],\n  ['control: two zero-time steps',\n   [[[0, 'A'], [0, 'A'], [0, 'A'], [50, 'B']], [[10, {'A': True}], [10, {'A': True}], [10, {}]]],\n   [[1, 0, True], [2, 0, True], [2, 0, False]]],\n  ['regression: exact minimum time',\n   [[[30, 'X'], [10, 'Y']],\n    [[10, {}], [10, {}], [10, {}], [10, {'X': True}], [10, {'Y': True}], [10, {'Y': True}]]],\n   [[0, 0, False], [0, 10, False], [0, 20, False], [1, 0, True], [1, 0, False], [0, 0, True]]],\n  ['control: late condition',\n   [[[20, 'X'], [20, 'Y']], [[15, {}], [15, {}], [15, {}], [15, {'X': True}], [15, {}], [15, {'Y': True}]]],\n   [[0, 0, False], [0, 15, False], [0, 30, False], [1, 0, True], [1, 0, False], [1, 15, False]]],\n  ['control: scenario 1',\n   [[[0, 'T2'], [100, 'T3'], [100, 'T1'], [20, 'T2']],\n    [[40, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': False, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [0, 50, False],\n    [0, 60, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 20, False],\n    [1, 40, False],\n    [1, 80, False],\n    [1, 90, False]]],\n  ['control: scenario 2',\n   [[[20, 'T1'], [20, 'T2'], [100, 'T3'], [0, 'T1']],\n    [[50, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 35, False],\n    [1, 85, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False]]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic bounded teaching model of one PLC instruction or rung pattern evaluated scan by scan. The stated contract is a stipulated toy convention, not a claim of conformance to any vendor controller or IEC 61131-3 runtime. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-plc-ladder-logic-scan-cycles-sfc-step-sequencer-sequence-wrap","generated_at":"2026-09-29T14:51:42.991986+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Ladder programs are executed as repeated scans; each defect here changes what a rung, timer, counter or data-table instruction reports on a particular scan, which is how commissioning and field faults are actually observed.","repair":"Advance modulo the number of steps.","root_cause":"The next-step computation clamps at the last index.","sha256":"e637be58cb7db0973196e10cffa831398ed036e56073c99cd1a15f3109c6b19a","title":"Step sequence stalls on its last step · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.378,"exit_code":1,"observations":[{"actual":[[0,0,false],[0,10,false],[1,0,true],[2,0,true],[2,0,false],[2,15,false],[1,0,true]],"check":"regression: zero-time step chain","expected":[[0,0,false],[0,10,false],[1,0,true],[2,0,true],[2,0,false],[2,15,false],[0,0,true]],"passed":false},{"actual":[[0,0,false],[0,10,false],[0,20,false],[1,0,true],[1,0,false],[1,0,true]],"check":"regression: exact minimum time","expected":[[0,0,false],[0,10,false],[0,20,false],[1,0,true],[1,0,false],[0,0,true]],"passed":false},{"actual":[[1,0,true],[2,0,true],[2,0,false]],"check":"control: two zero-time steps","expected":[[1,0,true],[2,0,true],[2,0,false]],"passed":true},{"actual":[[0,0,false],[0,15,false],[0,30,false],[1,0,true],[1,0,false],[1,15,false]],"check":"control: late condition","expected":[[0,0,false],[0,15,false],[0,30,false],[1,0,true],[1,0,false],[1,15,false]],"passed":true},{"actual":[[0,0,false],[1,0,true],[1,0,false],[1,50,false],[1,90,false],[1,110,false],[2,0,true],[2,0,false],[2,50,false]],"check":"control: scenario 1","expected":[[0,0,false],[1,0,true],[1,0,false],[1,50,false],[1,90,false],[1,110,false],[2,0,true],[2,0,false],[2,50,false]],"passed":true},{"actual":[[0,0,false],[0,40,false],[1,0,true],[1,0,false],[1,40,false],[1,80,false],[1,105,false]],"check":"control: scenario 2","expected":[[0,0,false],[0,40,false],[1,0,true],[1,0,false],[1,40,false],[1,80,false],[1,105,false]],"passed":true},{"actual":[[1,0,true],[1,0,false],[1,10,false],[1,20,false],[1,40,false],[1,80,false],[2,0,true]],"check":"control: scenario 3","expected":[[1,0,true],[1,0,false],[1,10,false],[1,20,false],[1,40,false],[1,80,false],[2,0,true]],"passed":true},{"actual":[[0,0,false],[1,0,true],[1,0,false],[2,0,true],[3,0,true],[1,0,true],[2,0,true],[2,0,false],[3,0,true]],"check":"regression: scenario 4","expected":[[0,0,false],[1,0,true],[1,0,false],[2,0,true],[3,0,true],[0,0,true],[0,0,false],[1,0,true],[2,0,true]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: zero-time step chain\", \"actual\": [[0, 0, false], [0, 10, false], [1, 0, true], [2, 0, true], [2, 0, false], [2, 15, false], [1, 0, true]], \"expected\": [[0, 0, false], [0, 10, false], [1, 0, true], [2, 0, true], [2, 0, false], [2, 15, false], [0, 0, true]], \"passed\": false}, {\"check\": \"regression: exact minimum time\", \"actual\": [[0, 0, false], [0, 10, false], [0, 20, false], [1, 0, true], [1, 0, false], [1, 0, true]], \"expected\": [[0, 0, false], [0, 10, false], [0, 20, false], [1, 0, true], [1, 0, false], [0, 0, true]], \"passed\": false}, {\"check\": \"control: two zero-time steps\", \"actual\": [[1, 0, true], [2, 0, true], [2, 0, false]], \"expected\": [[1, 0, true], [2, 0, true], [2, 0, false]], \"passed\": true}, {\"check\": \"control: late condition\", \"actual\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 0, true], [1, 0, false], [1, 15, false]], \"expected\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 0, true], [1, 0, false], [1, 15, false]], \"passed\": true}, {\"check\": \"control: scenario 1\", \"actual\": [[0, 0, false], [1, 0, true], [1, 0, false], [1, 50, false], [1, 90, false], [1, 110, false], [2, 0, true], [2, 0, false], [2, 50, false]], \"expected\": [[0, 0, false], [1, 0, true], [1, 0, false], [1, 50, false], [1, 90, false], [1, 110, false], [2, 0, true], [2, 0, false], [2, 50, false]], \"passed\": true}, {\"check\": \"control: scenario 2\", \"actual\": [[0, 0, false], [0, 40, false], [1, 0, true], [1, 0, false], [1, 40, false], [1, 80, false], [1, 105, false]], \"expected\": [[0, 0, false], [0, 40, false], [1, 0, true], [1, 0, false], [1, 40, false], [1, 80, false], [1, 105, false]], \"passed\": true}, {\"check\": \"control: scenario 3\", \"actual\": [[1, 0, true], [1, 0, false], [1, 10, false], [1, 20, false], [1, 40, false], [1, 80, false], [2, 0, true]], \"expected\": [[1, 0, true], [1, 0, false], [1, 10, false], [1, 20, false], [1, 40, false], [1, 80, false], [2, 0, true]], \"passed\": true}, {\"check\": \"regression: scenario 4\", \"actual\": [[0, 0, false], [1, 0, true], [1, 0, false], [2, 0, true], [3, 0, true], [1, 0, true], [2, 0, true], [2, 0, false], [3, 0, true]], \"expected\": [[0, 0, false], [1, 0, true], [1, 0, false], [2, 0, true], [3, 0, true], [0, 0, true], [0, 0, false], [1, 0, true], [2, 0, true]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.08,"exit_code":1,"observations":[{"actual":[[0,0,false],[0,10,false],[1,0,true],[2,0,true],[2,0,false],[2,15,false],[2,0,true]],"check":"regression: zero-time step chain","expected":[[0,0,false],[0,10,false],[1,0,true],[2,0,true],[2,0,false],[2,15,false],[0,0,true]],"passed":false},{"actual":[[0,0,false],[0,10,false],[0,20,false],[1,0,true],[1,0,false],[1,0,true]],"check":"regression: exact minimum time","expected":[[0,0,false],[0,10,false],[0,20,false],[1,0,true],[1,0,false],[0,0,true]],"passed":false},{"actual":[[1,0,true],[2,0,true],[2,0,false]],"check":"control: two zero-time steps","expected":[[1,0,true],[2,0,true],[2,0,false]],"passed":true},{"actual":[[0,0,false],[0,15,false],[0,30,false],[1,0,true],[1,0,false],[1,15,false]],"check":"control: late condition","expected":[[0,0,false],[0,15,false],[0,30,false],[1,0,true],[1,0,false],[1,15,false]],"passed":true},{"actual":[[0,0,false],[1,0,true],[1,0,false],[1,50,false],[1,90,false],[1,110,false],[2,0,true],[2,0,false],[2,50,false]],"check":"control: scenario 1","expected":[[0,0,false],[1,0,true],[1,0,false],[1,50,false],[1,90,false],[1,110,false],[2,0,true],[2,0,false],[2,50,false]],"passed":true},{"actual":[[0,0,false],[0,40,false],[1,0,true],[1,0,false],[1,40,false],[1,80,false],[1,105,false]],"check":"control: scenario 2","expected":[[0,0,false],[0,40,false],[1,0,true],[1,0,false],[1,40,false],[1,80,false],[1,105,false]],"passed":true},{"actual":[[1,0,true],[1,0,false],[1,10,false],[1,20,false],[1,40,false],[1,80,false],[2,0,true]],"check":"control: scenario 3","expected":[[1,0,true],[1,0,false],[1,10,false],[1,20,false],[1,40,false],[1,80,false],[2,0,true]],"passed":true},{"actual":[[0,0,false],[1,0,true],[1,0,false],[2,0,true],[3,0,true],[3,0,true],[3,0,false],[3,0,true],[3,0,true]],"check":"regression: scenario 4","expected":[[0,0,false],[1,0,true],[1,0,false],[2,0,true],[3,0,true],[0,0,true],[0,0,false],[1,0,true],[2,0,true]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: zero-time step chain\", \"actual\": [[0, 0, false], [0, 10, false], [1, 0, true], [2, 0, true], [2, 0, false], [2, 15, false], [2, 0, true]], \"expected\": [[0, 0, false], [0, 10, false], [1, 0, true], [2, 0, true], [2, 0, false], [2, 15, false], [0, 0, true]], \"passed\": false}, {\"check\": \"regression: exact minimum time\", \"actual\": [[0, 0, false], [0, 10, false], [0, 20, false], [1, 0, true], [1, 0, false], [1, 0, true]], \"expected\": [[0, 0, false], [0, 10, false], [0, 20, false], [1, 0, true], [1, 0, false], [0, 0, true]], \"passed\": false}, {\"check\": \"control: two zero-time steps\", \"actual\": [[1, 0, true], [2, 0, true], [2, 0, false]], \"expected\": [[1, 0, true], [2, 0, true], [2, 0, false]], \"passed\": true}, {\"check\": \"control: late condition\", \"actual\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 0, true], [1, 0, false], [1, 15, false]], \"expected\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 0, true], [1, 0, false], [1, 15, false]], \"passed\": true}, {\"check\": \"control: scenario 1\", \"actual\": [[0, 0, false], [1, 0, true], [1, 0, false], [1, 50, false], [1, 90, false], [1, 110, false], [2, 0, true], [2, 0, false], [2, 50, false]], \"expected\": [[0, 0, false], [1, 0, true], [1, 0, false], [1, 50, false], [1, 90, false], [1, 110, false], [2, 0, true], [2, 0, false], [2, 50, false]], \"passed\": true}, {\"check\": \"control: scenario 2\", \"actual\": [[0, 0, false], [0, 40, false], [1, 0, true], [1, 0, false], [1, 40, false], [1, 80, false], [1, 105, false]], \"expected\": [[0, 0, false], [0, 40, false], [1, 0, true], [1, 0, false], [1, 40, false], [1, 80, false], [1, 105, false]], \"passed\": true}, {\"check\": \"control: scenario 3\", \"actual\": [[1, 0, true], [1, 0, false], [1, 10, false], [1, 20, false], [1, 40, false], [1, 80, false], [2, 0, true]], \"expected\": [[1, 0, true], [1, 0, false], [1, 10, false], [1, 20, false], [1, 40, false], [1, 80, false], [2, 0, true]], \"passed\": true}, {\"check\": \"regression: scenario 4\", \"actual\": [[0, 0, false], [1, 0, true], [1, 0, false], [2, 0, true], [3, 0, true], [3, 0, true], [3, 0, false], [3, 0, true], [3, 0, true]], \"expected\": [[0, 0, false], [1, 0, true], [1, 0, false], [2, 0, true], [3, 0, true], [0, 0, true], [0, 0, false], [1, 0, true], [2, 0, true]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.25,"exit_code":0,"observations":[{"actual":[[0,0,false],[0,10,false],[1,0,true],[2,0,true],[2,0,false],[2,15,false],[0,0,true]],"check":"regression: zero-time step chain","expected":[[0,0,false],[0,10,false],[1,0,true],[2,0,true],[2,0,false],[2,15,false],[0,0,true]],"passed":true},{"actual":[[0,0,false],[0,10,false],[0,20,false],[1,0,true],[1,0,false],[0,0,true]],"check":"regression: exact minimum time","expected":[[0,0,false],[0,10,false],[0,20,false],[1,0,true],[1,0,false],[0,0,true]],"passed":true},{"actual":[[1,0,true],[2,0,true],[2,0,false]],"check":"control: two zero-time steps","expected":[[1,0,true],[2,0,true],[2,0,false]],"passed":true},{"actual":[[0,0,false],[0,15,false],[0,30,false],[1,0,true],[1,0,false],[1,15,false]],"check":"control: late condition","expected":[[0,0,false],[0,15,false],[0,30,false],[1,0,true],[1,0,false],[1,15,false]],"passed":true},{"actual":[[0,0,false],[1,0,true],[1,0,false],[1,50,false],[1,90,false],[1,110,false],[2,0,true],[2,0,false],[2,50,false]],"check":"control: scenario 1","expected":[[0,0,false],[1,0,true],[1,0,false],[1,50,false],[1,90,false],[1,110,false],[2,0,true],[2,0,false],[2,50,false]],"passed":true},{"actual":[[0,0,false],[0,40,false],[1,0,true],[1,0,false],[1,40,false],[1,80,false],[1,105,false]],"check":"control: scenario 2","expected":[[0,0,false],[0,40,false],[1,0,true],[1,0,false],[1,40,false],[1,80,false],[1,105,false]],"passed":true},{"actual":[[1,0,true],[1,0,false],[1,10,false],[1,20,false],[1,40,false],[1,80,false],[2,0,true]],"check":"control: scenario 3","expected":[[1,0,true],[1,0,false],[1,10,false],[1,20,false],[1,40,false],[1,80,false],[2,0,true]],"passed":true},{"actual":[[0,0,false],[1,0,true],[1,0,false],[2,0,true],[3,0,true],[0,0,true],[0,0,false],[1,0,true],[2,0,true]],"check":"regression: scenario 4","expected":[[0,0,false],[1,0,true],[1,0,false],[2,0,true],[3,0,true],[0,0,true],[0,0,false],[1,0,true],[2,0,true]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: zero-time step chain\", \"actual\": [[0, 0, false], [0, 10, false], [1, 0, true], [2, 0, true], [2, 0, false], [2, 15, false], [0, 0, true]], \"expected\": [[0, 0, false], [0, 10, false], [1, 0, true], [2, 0, true], [2, 0, false], [2, 15, false], [0, 0, true]], \"passed\": true}, {\"check\": \"regression: exact minimum time\", \"actual\": [[0, 0, false], [0, 10, false], [0, 20, false], [1, 0, true], [1, 0, false], [0, 0, true]], \"expected\": [[0, 0, false], [0, 10, false], [0, 20, false], [1, 0, true], [1, 0, false], [0, 0, true]], \"passed\": true}, {\"check\": \"control: two zero-time steps\", \"actual\": [[1, 0, true], [2, 0, true], [2, 0, false]], \"expected\": [[1, 0, true], [2, 0, true], [2, 0, false]], \"passed\": true}, {\"check\": \"control: late condition\", \"actual\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 0, true], [1, 0, false], [1, 15, false]], \"expected\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 0, true], [1, 0, false], [1, 15, false]], \"passed\": true}, {\"check\": \"control: scenario 1\", \"actual\": [[0, 0, false], [1, 0, true], [1, 0, false], [1, 50, false], [1, 90, false], [1, 110, false], [2, 0, true], [2, 0, false], [2, 50, false]], \"expected\": [[0, 0, false], [1, 0, true], [1, 0, false], [1, 50, false], [1, 90, false], [1, 110, false], [2, 0, true], [2, 0, false], [2, 50, false]], \"passed\": true}, {\"check\": \"control: scenario 2\", \"actual\": [[0, 0, false], [0, 40, false], [1, 0, true], [1, 0, false], [1, 40, false], [1, 80, false], [1, 105, false]], \"expected\": [[0, 0, false], [0, 40, false], [1, 0, true], [1, 0, false], [1, 40, false], [1, 80, false], [1, 105, false]], \"passed\": true}, {\"check\": \"control: scenario 3\", \"actual\": [[1, 0, true], [1, 0, false], [1, 10, false], [1, 20, false], [1, 40, false], [1, 80, false], [2, 0, true]], \"expected\": [[1, 0, true], [1, 0, false], [1, 10, false], [1, 20, false], [1, 40, false], [1, 80, false], [2, 0, true]], \"passed\": true}, {\"check\": \"regression: scenario 4\", \"actual\": [[0, 0, false], [1, 0, true], [1, 0, false], [2, 0, true], [3, 0, true], [0, 0, true], [0, 0, false], [1, 0, true], [2, 0, true]], \"expected\": [[0, 0, false], [1, 0, true], [1, 0, false], [2, 0, true], [3, 0, true], [0, 0, true], [0, 0, false], [1, 0, true], [2, 0, true]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}