{"abstract":"Every step dwells one scan longer than its configured minimum, and zero-time steps need a scan of time.","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":"Anticipating the next scan interval fires transitions before the minimum has elapsed.","family":"w2-plc-ladder-logic-scan-cycles-sfc-step-sequencer-dwell-compare","id":"FA-92146","implementations":{"attempt":{"sha256":"6fa6281c3433f008efd0eadcce76fa57c55dbb4271ce12672359389ff5a06d1b","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 + dt > 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: 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  ['regression: 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  ['regression: 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  ['regression: 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  ['regression: 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: 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: 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: 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  ['regression: 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  ['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: 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: 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 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  ['regression: 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: 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, '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 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 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  ['regression: scenario 13',\n   [[[100, 'T1'], [20, 'T2'], [50, 'T1'], [0, 'T3']],\n    [[25, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 10, False],\n    [0, 60, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False],\n    [2, 40, False],\n    [3, 0, True],\n    [3, 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  ['regression: 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  ['regression: 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   [[[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 3',\n   [[[100, 'T2'], [0, 'T2'], [0, 'T3']],\n    [[50, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 10, False],\n    [0, 30, False],\n    [0, 70, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False]]]],\n [['regression: scenario 9',\n   [[[100, 'T2'], [100, 'T1'], [100, 'T2']],\n    [[20, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 60, False],\n    [1, 85, False],\n    [1, 105, False]]],\n  ['regression: scenario 8',\n   [[[50, 'T2'], [100, 'T1'], [50, 'T2']],\n    [[50, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 35, False],\n    [1, 45, 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  ['regression: 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  ['regression: 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":"fc8a1199627892e6e3dd3faa65130fe23614ca4924787989deede6799b2d6ec0","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: 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  ['regression: 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  ['regression: 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  ['regression: 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  ['regression: 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: 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: 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: 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  ['regression: 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  ['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: 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: 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 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  ['regression: 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: 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, '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 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 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  ['regression: scenario 13',\n   [[[100, 'T1'], [20, 'T2'], [50, 'T1'], [0, 'T3']],\n    [[25, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 10, False],\n    [0, 60, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False],\n    [2, 40, False],\n    [3, 0, True],\n    [3, 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  ['regression: 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  ['regression: 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   [[[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 3',\n   [[[100, 'T2'], [0, 'T2'], [0, 'T3']],\n    [[50, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 10, False],\n    [0, 30, False],\n    [0, 70, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False]]]],\n [['regression: scenario 9',\n   [[[100, 'T2'], [100, 'T1'], [100, 'T2']],\n    [[20, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 60, False],\n    [1, 85, False],\n    [1, 105, False]]],\n  ['regression: scenario 8',\n   [[[50, 'T2'], [100, 'T1'], [50, 'T2']],\n    [[50, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 35, False],\n    [1, 45, 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  ['regression: 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  ['regression: 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":"9abae8b9bfa680b6275c88535fee2d3dfeb24668db343d2a7d81e5b3d51e5534","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: 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  ['regression: 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  ['regression: 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  ['regression: 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  ['regression: 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: 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: 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: 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  ['regression: 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  ['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: 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: 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 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  ['regression: 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: 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, '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 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 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  ['regression: scenario 13',\n   [[[100, 'T1'], [20, 'T2'], [50, 'T1'], [0, 'T3']],\n    [[25, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [50, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': False, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 10, False],\n    [0, 60, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False],\n    [2, 40, False],\n    [3, 0, True],\n    [3, 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  ['regression: 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  ['regression: 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   [[[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 3',\n   [[[100, 'T2'], [0, 'T2'], [0, 'T3']],\n    [[50, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [20, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 10, False],\n    [0, 30, False],\n    [0, 70, False],\n    [1, 0, True],\n    [2, 0, True],\n    [2, 0, False]]]],\n [['regression: scenario 9',\n   [[[100, 'T2'], [100, 'T1'], [100, 'T2']],\n    [[20, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 50, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 60, False],\n    [1, 85, False],\n    [1, 105, False]]],\n  ['regression: scenario 8',\n   [[[50, 'T2'], [100, 'T1'], [50, 'T2']],\n    [[50, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': False, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': False, 'T3': True}],\n     [10, {'T1': True, 'T2': False, 'T3': False}],\n     [25, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': True, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 40, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False],\n    [1, 35, False],\n    [1, 45, 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  ['regression: 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  ['regression: 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-dwell-compare","generated_at":"2026-09-29T14:51:42.979073+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":"Allow the transition when step time >= minimum.","root_cause":"The dwell test uses > instead of >=.","sha256":"1b4ea635d99548c74e7e17f2afb1eab43c64702c7f34e053004af03ea74720ed","title":"Step transition waits for step time to exceed the minimum · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":46.478,"exit_code":1,"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,15,false],[0,30,false],[1,0,true],[1,0,false],[0,0,true]],"check":"regression: late condition","expected":[[0,0,false],[0,15,false],[0,30,false],[1,0,true],[1,0,false],[1,15,false]],"passed":false},{"actual":[[1,0,true],[2,0,true],[2,0,false]],"check":"regression: two zero-time steps","expected":[[1,0,true],[2,0,true],[2,0,false]],"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":[[0,0,false],[1,0,true],[1,0,false],[1,50,false],[2,0,true],[2,0,false],[2,25,false],[2,45,false],[3,0,true]],"check":"regression: 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":false},{"actual":[[0,0,false],[0,40,false],[1,0,true],[2,0,true],[2,0,false],[0,0,true],[0,0,false]],"check":"regression: 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":false},{"actual":[[1,0,true],[1,0,false],[1,10,false],[1,20,false],[1,40,false],[1,80,false],[2,0,true]],"check":"regression: 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":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], [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: late condition\", \"actual\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 0, true], [1, 0, false], [0, 0, true]], \"expected\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 0, true], [1, 0, false], [1, 15, false]], \"passed\": false}, {\"check\": \"regression: 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\": \"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\": \"regression: scenario 1\", \"actual\": [[0, 0, false], [1, 0, true], [1, 0, false], [1, 50, false], [2, 0, true], [2, 0, false], [2, 25, false], [2, 45, false], [3, 0, true]], \"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\": false}, {\"check\": \"regression: scenario 2\", \"actual\": [[0, 0, false], [0, 40, false], [1, 0, true], [2, 0, true], [2, 0, false], [0, 0, true], [0, 0, false]], \"expected\": [[0, 0, false], [0, 40, false], [1, 0, true], [1, 0, false], [1, 40, false], [1, 80, false], [1, 105, false]], \"passed\": false}, {\"check\": \"regression: 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\": false}\n"},"broken":{"elapsed_ms":45.434,"exit_code":1,"observations":[{"actual":[[0,0,false],[0,10,false],[0,20,false],[0,35,false],[0,50,false],[0,65,false],[0,80,false]],"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,15,false],[0,30,false],[1,0,true],[1,0,false],[1,15,false]],"check":"regression: 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]],"check":"regression: two zero-time steps","expected":[[1,0,true],[2,0,true],[2,0,false]],"passed":false},{"actual":[[0,0,false],[0,10,false],[0,20,false],[0,30,false],[0,40,false],[0,50,false]],"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":[[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":"regression: 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":"regression: 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":[[0,0,false],[0,25,false],[1,0,true],[1,0,false],[1,20,false],[1,60,false],[1,85,false]],"check":"regression: 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":false},{"actual":[[0,0,false],[1,0,true],[1,0,false],[2,0,true],[2,0,false],[3,0,true],[3,0,false],[0,0,true],[0,0,false]],"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], [0, 20, false], [0, 35, false], [0, 50, false], [0, 65, false], [0, 80, false]], \"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: 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\": \"regression: two zero-time steps\", \"actual\": [[0, 0, false], [1, 0, true], [1, 0, false]], \"expected\": [[1, 0, true], [2, 0, true], [2, 0, false]], \"passed\": false}, {\"check\": \"regression: exact minimum time\", \"actual\": [[0, 0, false], [0, 10, false], [0, 20, false], [0, 30, false], [0, 40, false], [0, 50, false]], \"expected\": [[0, 0, false], [0, 10, false], [0, 20, false], [1, 0, true], [1, 0, false], [0, 0, true]], \"passed\": false}, {\"check\": \"regression: 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\": \"regression: 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\": \"regression: scenario 3\", \"actual\": [[0, 0, false], [0, 25, false], [1, 0, true], [1, 0, false], [1, 20, false], [1, 60, false], [1, 85, false]], \"expected\": [[1, 0, true], [1, 0, false], [1, 10, false], [1, 20, false], [1, 40, false], [1, 80, false], [2, 0, true]], \"passed\": false}, {\"check\": \"regression: scenario 4\", \"actual\": [[0, 0, false], [1, 0, true], [1, 0, false], [2, 0, true], [2, 0, false], [3, 0, true], [3, 0, false], [0, 0, true], [0, 0, false]], \"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":43.784,"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,15,false],[0,30,false],[1,0,true],[1,0,false],[1,15,false]],"check":"regression: late condition","expected":[[0,0,false],[0,15,false],[0,30,false],[1,0,true],[1,0,false],[1,15,false]],"passed":true},{"actual":[[1,0,true],[2,0,true],[2,0,false]],"check":"regression: two zero-time steps","expected":[[1,0,true],[2,0,true],[2,0,false]],"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":[[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":"regression: 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":"regression: 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":"regression: 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: 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\": \"regression: 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\": \"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\": \"regression: 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\": \"regression: 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\": \"regression: 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"}