{"abstract":"A step can transition earlier than its minimum because leftover time from the previous step is carried in.","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":"Seeding the new step with the current scan interval still credits time before activation.","family":"w2-plc-ladder-logic-scan-cycles-sfc-step-sequencer-step-time-reset","id":"FA-92156","implementations":{"attempt":{"sha256":"21c70225c8efb2a9624c432da01c44400516e62352ad04cadbb0641dc00f52fa","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 = dt\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: 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: 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: 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: 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: 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: 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 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 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  ['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: 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  ['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 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 4',\n   [[[100, 'T1'], [50, 'T3'], [0, 'T1'], [0, 'T1']],\n    [[10, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 50, False],\n    [0, 70, False],\n    [0, 90, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False]]]],\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: 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: 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: 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 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 4',\n   [[[100, 'T2'], [20, 'T1'], [0, 'T3']],\n    [[50, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 10, False],\n    [0, 30, False],\n    [0, 40, False],\n    [0, 80, False],\n    [0, 105, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 20, False],\n    [1, 70, False],\n    [1, 120, False],\n    [2, 0, True],\n    [2, 0, False]]]],\n [['regression: scenario 4',\n   [[[20, 'T1'], [50, 'T1'], [50, 'T3'], [0, 'T3']],\n    [[25, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 20, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False],\n    [2, 45, False],\n    [2, 55, False],\n    [3, 0, True],\n    [3, 0, False],\n    [0, 0, True]]],\n  ['regression: 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  ['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  ['regression: 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]]],\n  ['regression: scenario 3',\n   [[[20, 'T2'], [50, 'T2'], [0, 'T1']],\n    [[50, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': False}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [2, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 10, False],\n    [0, 35, False],\n    [1, 0, True]]]]]\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":"32e13651cdcaee087cb22700d650dbc14581f93ed4a9738182d6ecf8726dd8a1","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 -= min_ms\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: 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: 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: 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: 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: 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: 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 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 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  ['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: 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  ['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 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 4',\n   [[[100, 'T1'], [50, 'T3'], [0, 'T1'], [0, 'T1']],\n    [[10, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 50, False],\n    [0, 70, False],\n    [0, 90, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False]]]],\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: 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: 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: 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 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 4',\n   [[[100, 'T2'], [20, 'T1'], [0, 'T3']],\n    [[50, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 10, False],\n    [0, 30, False],\n    [0, 40, False],\n    [0, 80, False],\n    [0, 105, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 20, False],\n    [1, 70, False],\n    [1, 120, False],\n    [2, 0, True],\n    [2, 0, False]]]],\n [['regression: scenario 4',\n   [[[20, 'T1'], [50, 'T1'], [50, 'T3'], [0, 'T3']],\n    [[25, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 20, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False],\n    [2, 45, False],\n    [2, 55, False],\n    [3, 0, True],\n    [3, 0, False],\n    [0, 0, True]]],\n  ['regression: 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  ['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  ['regression: 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]]],\n  ['regression: scenario 3',\n   [[[20, 'T2'], [50, 'T2'], [0, 'T1']],\n    [[50, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': False}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [2, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 10, False],\n    [0, 35, False],\n    [1, 0, True]]]]]\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":"86a9df6f91a484f3f6869b1863e16dd0245f2c5e4022360ce1de734dec5e5a17","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: 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: 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: 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: 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: 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: 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 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 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  ['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: 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  ['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 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 4',\n   [[[100, 'T1'], [50, 'T3'], [0, 'T1'], [0, 'T1']],\n    [[10, {'T1': True, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [0, 50, False],\n    [0, 70, False],\n    [0, 90, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 10, False]]]],\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: 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: 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: 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 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 4',\n   [[[100, 'T2'], [20, 'T1'], [0, 'T3']],\n    [[50, {'T1': False, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': False, 'T2': False, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': False}]]],\n   [[0, 0, False],\n    [0, 10, False],\n    [0, 30, False],\n    [0, 40, False],\n    [0, 80, False],\n    [0, 105, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 20, False],\n    [1, 70, False],\n    [1, 120, False],\n    [2, 0, True],\n    [2, 0, False]]]],\n [['regression: scenario 4',\n   [[[20, 'T1'], [50, 'T1'], [50, 'T3'], [0, 'T3']],\n    [[25, {'T1': True, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [20, {'T1': False, 'T2': False, 'T3': False}],\n     [20, {'T1': True, 'T2': False, 'T3': True}],\n     [40, {'T1': True, 'T2': True, 'T3': True}],\n     [50, {'T1': False, 'T2': True, 'T3': True}],\n     [20, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': False, 'T3': False}],\n     [10, {'T1': False, 'T2': True, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [20, {'T1': True, 'T2': True, 'T3': False}],\n     [10, {'T1': True, 'T2': True, 'T3': True}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [1, 20, False],\n    [2, 0, True],\n    [2, 0, False],\n    [2, 20, False],\n    [2, 45, False],\n    [2, 55, False],\n    [3, 0, True],\n    [3, 0, False],\n    [0, 0, True]]],\n  ['regression: 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  ['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  ['regression: 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]]],\n  ['regression: scenario 3',\n   [[[20, 'T2'], [50, 'T2'], [0, 'T1']],\n    [[50, {'T1': False, 'T2': True, 'T3': False}],\n     [25, {'T1': True, 'T2': True, 'T3': True}],\n     [25, {'T1': False, 'T2': False, 'T3': False}],\n     [50, {'T1': False, 'T2': True, 'T3': False}],\n     [40, {'T1': True, 'T2': False, 'T3': False}],\n     [50, {'T1': True, 'T2': True, 'T3': True}],\n     [10, {'T1': False, 'T2': False, 'T3': True}],\n     [25, {'T1': True, 'T2': False, 'T3': True}],\n     [25, {'T1': False, 'T2': True, 'T3': False}]]],\n   [[0, 0, False],\n    [1, 0, True],\n    [1, 0, False],\n    [2, 0, True],\n    [0, 0, True],\n    [0, 0, False],\n    [0, 10, False],\n    [0, 35, False],\n    [1, 0, True]]]]]\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-step-time-reset","generated_at":"2026-09-29T14:51:43.037177+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":"Reset step time to 0 on every transition.","root_cause":"On transition the step time is reduced by the old minimum instead of reset.","sha256":"bd061ade7db650392333b310b90304d4dbebe32fdab301915ff2334a2573bbde","title":"New step inherits the previous step's excess time · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.105,"exit_code":1,"observations":[{"actual":[[0,0,false],[0,15,false],[0,30,false],[1,15,true],[1,15,false],[0,15,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":[[0,0,false],[0,10,false],[1,10,true],[2,15,true],[2,15,false],[0,15,true],[0,15,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":[[1,10,true],[2,10,true],[2,10,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],[1,10,true],[0,10,true],[0,10,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,20,true],[1,20,false],[1,70,false],[2,40,true],[2,40,false],[2,65,false],[2,85,false],[3,50,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,10,true],[1,10,false],[1,50,false],[1,90,false],[1,115,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,25,true],[1,25,false],[1,35,false],[1,45,false],[1,65,false],[1,105,false],[2,25,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":false},{"actual":[[0,0,false],[1,20,true],[1,20,false],[2,20,true],[3,25,true],[0,50,true],[0,50,false],[1,40,true],[2,40,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: late condition\", \"actual\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 15, true], [1, 15, false], [0, 15, true]], \"expected\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 0, true], [1, 0, false], [1, 15, false]], \"passed\": false}, {\"check\": \"regression: zero-time step chain\", \"actual\": [[0, 0, false], [0, 10, false], [1, 10, true], [2, 15, true], [2, 15, false], [0, 15, true], [0, 15, 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: two zero-time steps\", \"actual\": [[1, 10, true], [2, 10, true], [2, 10, 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], [1, 10, true], [0, 10, true], [0, 10, 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, 20, true], [1, 20, false], [1, 70, false], [2, 40, true], [2, 40, false], [2, 65, false], [2, 85, false], [3, 50, 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, 10, true], [1, 10, false], [1, 50, false], [1, 90, false], [1, 115, 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, 25, true], [1, 25, false], [1, 35, false], [1, 45, false], [1, 65, false], [1, 105, false], [2, 25, true]], \"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, 20, true], [1, 20, false], [2, 20, true], [3, 25, true], [0, 50, true], [0, 50, false], [1, 40, true], [2, 40, 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":47.54,"exit_code":1,"observations":[{"actual":[[0,0,false],[0,15,false],[0,30,false],[1,25,true],[1,25,false],[0,20,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":[[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":[[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,20,true],[1,20,false],[1,70,false],[2,10,true],[2,10,false],[2,35,false],[2,55,false],[3,5,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,30,true],[2,10,true],[2,10,false],[0,30,true],[0,30,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,5,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":false},{"actual":[[0,0,false],[1,20,true],[1,20,false],[2,40,true],[3,40,true],[0,40,true],[0,40,false],[1,80,true],[2,80,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: late condition\", \"actual\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 25, true], [1, 25, false], [0, 20, true]], \"expected\": [[0, 0, false], [0, 15, false], [0, 30, false], [1, 0, true], [1, 0, false], [1, 15, false]], \"passed\": false}, {\"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: 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, 20, true], [1, 20, false], [1, 70, false], [2, 10, true], [2, 10, false], [2, 35, false], [2, 55, false], [3, 5, 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, 30, true], [2, 10, true], [2, 10, false], [0, 30, true], [0, 30, 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, 5, true]], \"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, 20, true], [1, 20, false], [2, 40, true], [3, 40, true], [0, 40, true], [0, 40, false], [1, 80, true], [2, 80, 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.583,"exit_code":0,"observations":[{"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],[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":[[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: 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: 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: 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"}