{"abstract":"A start sequence is triggered by a restart because an input that was already held on is seen as a new rising edge.","category":"PLC ladder logic scan cycles","checks":8,"contract":"One-shot rising (OSR) and one-shot falling (OSF) instructions executed in program order each scan; instrs is a list of [kind, input_tag, storage_tag] and scans a list of {tag: bool} (missing tags are false). Prescan initializes each OSR storage bit true and each OSF storage bit false (later instructions overwrite shared storage), so nothing pulses on the first scan merely because an input is already in its steady state. OSR pulses when input is true and storage false; OSF pulses when storage is true and input false; the storage bit is then set to the input. Instructions that share a storage tag share its state. Return the pulse list per scan.","evaluation_group":"w2-plc-ladder-logic-scan-cycles-osr-osf-one-shots","failed_approach":"Setting every storage bit true suppresses the power-up OSR pulse but makes OSF fire for inputs that are off at power-up.","family":"w2-plc-ladder-logic-scan-cycles-osr-osf-one-shots-prescan-init","id":"FA-91976","implementations":{"attempt":{"sha256":"d8615c62f5b990441e7e91f8501738642621ad92ee64b72a137cfe0a95370b72","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(instrs, scans):\n    store = {}\n    for kind, tag, st in instrs:\n        store[st] = True\n    out = []\n    for inputs in scans:\n        pulses = []\n        for kind, tag, st in instrs:\n            cur = bool(inputs.get(tag, False))\n            if kind == 'OSF':\n                pulse = store[st] and not cur\n            else:\n                pulse = cur and not store[st]\n            store[st] = cur\n            pulses.append(pulse)\n        out.append(pulses)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: scenario 1',\n   [[['OSR', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:12']],\n    [{'B:3': False},\n     {'I:0': False, 'I:1': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False, False],\n    [True, False, False],\n    [False, False, False],\n    [False, False, False],\n    [True, False, False],\n    [False, False, False],\n    [False, False, True],\n    [True, False, False]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['regression: scenario 2',\n   [[['OSF', 'I:1', 'B:13'], ['OSF', 'B:3', 'B:10']],\n    [{'I:0': True, 'B:3': False},\n     {'I:0': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False], [False, False], [False, False], [False, True], [True, False], [False, False]]],\n  ['control: scenario 3',\n   [[['OSF', 'I:0', 'B:12'], ['OSF', 'B:3', 'B:12']],\n    [{'I:0': True, 'I:1': True},\n     {'I:1': False, 'B:3': True},\n     {'I:1': False},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': False}]],\n   [[False, True], [False, False], [True, False], [False, False], [False, False]]],\n  ['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:12'], ['OSF', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:11'], ['OSR', 'B:3', 'B:12']],\n    [{'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True}]],\n   [[True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [True, False, True, False],\n    [False, False, False, False],\n    [False, False, True, False],\n    [False, False, False, False]]],\n  ['regression: scenario 5',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'B:3', 'B:12']],\n    [{'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False], [False, False], [False, False], [False, False], [False, False]]]],\n [['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['regression: scenario 5',\n   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:1', 'B:13']],\n    [{'I:0': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:1': False, 'B:3': True},\n     {'I:1': False, 'B:3': True}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [False, True],\n    [False, True]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['regression: scenario 1',\n   [[['OSF', 'B:3', 'B:11'], ['OSR', 'B:3', 'B:10']],\n    [{'I:0': False, 'B:3': True},\n     {'I:0': True, 'I:1': True},\n     {'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': False}]],\n   [[False, False], [True, False], [False, False], [False, False], [False, False], [False, False]]],\n  ['control: scenario 2',\n   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:0', 'B:11']],\n    [{'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, False]]],\n  ['regression: scenario 3',\n   [[['OSR', 'I:0', 'B:11'], ['OSF', 'I:0', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:12']],\n    [{'I:0': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:1': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True}]],\n   [[False, False, False, False],\n    [False, False, True, False],\n    [False, True, False, False],\n    [False, False, True, False],\n    [True, False, False, False],\n    [False, True, True, False]]],\n  ['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:12'], ['OSR', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:10']],\n    [{'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': False},\n     {'I:0': False, 'I:1': True},\n     {'I:0': True, 'I:1': True, 'B:3': False}]],\n   [[True, False, False],\n    [False, False, True],\n    [False, False, False],\n    [False, False, False],\n    [False, False, True]]]],\n [['regression: scenario 5',\n   [[['OSR', 'I:1', 'B:13'], ['OSF', 'I:1', 'B:12'], ['OSF', 'I:1', 'B:12']],\n    [{'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, True, False],\n    [True, False, False]]],\n  ['regression: scenario 3',\n   [[['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],\n    [{'I:1': True, 'B:3': False},\n     {'I:0': True, 'B:3': True},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': True},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False}]],\n   [[False, False, False, False],\n    [True, True, False, False],\n    [False, False, True, False],\n    [True, True, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [True, True, False, False],\n    [False, False, False, False]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['control: scenario 1',\n   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:1', 'B:12']],\n    [{'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'B:3': True},\n     {'I:1': True, 'B:3': True},\n     {'I:1': True}]],\n   [[False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, True, False],\n    [True, False, True]]],\n  ['regression: scenario 2',\n   [[['OSF', 'I:1', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:10']],\n    [{'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': True},\n     {'I:0': False, 'B:3': True},\n     {'I:1': False}]],\n   [[False, False, False, False],\n    [False, False, False, False],\n    [False, False, True, False],\n    [False, False, False, False],\n    [True, False, True, False],\n    [False, False, False, False]]],\n  ['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:11'], ['OSF', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:12']],\n    [{'I:0': False, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'B:3': True},\n     {'I:1': True},\n     {'I:0': True, 'I:1': True, 'B:3': False}]],\n   [[False, False, False],\n    [False, False, True],\n    [False, True, False],\n    [True, False, True],\n    [False, False, False]]]],\n [['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:0', 'B:11'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:10']],\n    [{'I:0': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'B:3': False},\n     {'I:0': False, 'B:3': False},\n     {'I:0': False}]],\n   [[True, False, False, False],\n    [False, False, True, True],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, True, False, False],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False]]],\n  ['regression: scenario 9',\n   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:13']],\n    [{'I:0': True, 'I:1': False, 'B:3': False},\n     {'B:3': True},\n     {'I:1': False, 'B:3': True},\n     {'I:0': True, 'B:3': True},\n     {'I:0': False, 'B:3': True},\n     {'I:1': True, 'B:3': True}]],\n   [[False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, True, False]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['control: scenario 1',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:1': False},\n     {'I:0': False, 'I:1': False}]],\n   [[False, False, False],\n    [True, True, False],\n    [False, False, False],\n    [False, False, True],\n    [False, True, False],\n    [True, False, False],\n    [False, False, False],\n    [False, False, False]]],\n  ['control: scenario 2',\n   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:1', 'B:12'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True}]],\n   [[False, False, False, False],\n    [False, False, True, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, True, False]]],\n  ['regression: scenario 3',\n   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:11']],\n    [{'I:0': True, 'B:3': False},\n     {'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False},\n     {'I:0': False, 'B:3': False},\n     {'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'B:3': False}]],\n   [[True, False, True, True],\n    [False, False, True, False],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [True, False, False, False],\n    [False, False, False, True],\n    [True, False, True, False]]]],\n [['regression: scenario 15',\n   [[['OSR', 'I:0', 'B:12'], ['OSR', 'B:3', 'B:10'], ['OSR', 'I:1', 'B:12']],\n    [{'I:0': True, 'I:1': True},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': True, 'B:3': False}]],\n   [[False, False, False],\n    [False, True, False],\n    [False, False, True],\n    [False, False, False],\n    [True, False, False]]],\n  ['regression: scenario 7',\n   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:0', 'B:12']],\n    [{'I:0': True, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': True},\n     {'I:1': False, 'B:3': True}]],\n   [[False, False], [False, False], [False, False], [False, False], [True, False], [False, False]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['regression: scenario 1',\n   [[['OSF', 'I:1', 'B:12'], ['OSR', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11']],\n    [{'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'B:3': True}]],\n   [[False, False, False, False],\n    [True, False, False, False],\n    [False, False, True, True],\n    [True, False, False, False],\n    [False, True, False, False]]],\n  ['regression: scenario 2',\n   [[['OSF', 'I:0', 'B:13'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],\n    [{'I:0': True, 'I:1': False},\n     {'B:3': False},\n     {'I:1': False},\n     {'B:3': True},\n     {'I:0': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:1': False, 'B:3': False},\n     {'I:0': False, 'B:3': True}]],\n   [[False, False, False, False],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, True, False, False],\n    [False, False, False, False],\n    [False, True, False, False],\n    [True, False, False, False],\n    [False, True, False, False],\n    [False, False, False, False]]],\n  ['regression: scenario 3',\n   [[['OSR', 'I:1', 'B:11'], ['OSF', 'I:1', 'B:12']],\n    [{'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True}]],\n   [[False, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, False],\n    [True, False],\n    [False, False],\n    [False, 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":"6e8efcfac283bd0a2d3263ab4e924dec72e5f2e1b62a4e25a651a4d898ea25f8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(instrs, scans):\n    store = {}\n    for kind, tag, st in instrs:\n        store[st] = False\n    out = []\n    for inputs in scans:\n        pulses = []\n        for kind, tag, st in instrs:\n            cur = bool(inputs.get(tag, False))\n            if kind == 'OSF':\n                pulse = store[st] and not cur\n            else:\n                pulse = cur and not store[st]\n            store[st] = cur\n            pulses.append(pulse)\n        out.append(pulses)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: scenario 1',\n   [[['OSR', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:12']],\n    [{'B:3': False},\n     {'I:0': False, 'I:1': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False, False],\n    [True, False, False],\n    [False, False, False],\n    [False, False, False],\n    [True, False, False],\n    [False, False, False],\n    [False, False, True],\n    [True, False, False]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['regression: scenario 2',\n   [[['OSF', 'I:1', 'B:13'], ['OSF', 'B:3', 'B:10']],\n    [{'I:0': True, 'B:3': False},\n     {'I:0': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False], [False, False], [False, False], [False, True], [True, False], [False, False]]],\n  ['control: scenario 3',\n   [[['OSF', 'I:0', 'B:12'], ['OSF', 'B:3', 'B:12']],\n    [{'I:0': True, 'I:1': True},\n     {'I:1': False, 'B:3': True},\n     {'I:1': False},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': False}]],\n   [[False, True], [False, False], [True, False], [False, False], [False, False]]],\n  ['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:12'], ['OSF', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:11'], ['OSR', 'B:3', 'B:12']],\n    [{'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True}]],\n   [[True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [True, False, True, False],\n    [False, False, False, False],\n    [False, False, True, False],\n    [False, False, False, False]]],\n  ['regression: scenario 5',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'B:3', 'B:12']],\n    [{'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False], [False, False], [False, False], [False, False], [False, False]]]],\n [['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['regression: scenario 5',\n   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:1', 'B:13']],\n    [{'I:0': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:1': False, 'B:3': True},\n     {'I:1': False, 'B:3': True}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [False, True],\n    [False, True]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['regression: scenario 1',\n   [[['OSF', 'B:3', 'B:11'], ['OSR', 'B:3', 'B:10']],\n    [{'I:0': False, 'B:3': True},\n     {'I:0': True, 'I:1': True},\n     {'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': False}]],\n   [[False, False], [True, False], [False, False], [False, False], [False, False], [False, False]]],\n  ['control: scenario 2',\n   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:0', 'B:11']],\n    [{'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, False]]],\n  ['regression: scenario 3',\n   [[['OSR', 'I:0', 'B:11'], ['OSF', 'I:0', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:12']],\n    [{'I:0': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:1': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True}]],\n   [[False, False, False, False],\n    [False, False, True, False],\n    [False, True, False, False],\n    [False, False, True, False],\n    [True, False, False, False],\n    [False, True, True, False]]],\n  ['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:12'], ['OSR', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:10']],\n    [{'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': False},\n     {'I:0': False, 'I:1': True},\n     {'I:0': True, 'I:1': True, 'B:3': False}]],\n   [[True, False, False],\n    [False, False, True],\n    [False, False, False],\n    [False, False, False],\n    [False, False, True]]]],\n [['regression: scenario 5',\n   [[['OSR', 'I:1', 'B:13'], ['OSF', 'I:1', 'B:12'], ['OSF', 'I:1', 'B:12']],\n    [{'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, True, False],\n    [True, False, False]]],\n  ['regression: scenario 3',\n   [[['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],\n    [{'I:1': True, 'B:3': False},\n     {'I:0': True, 'B:3': True},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': True},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False}]],\n   [[False, False, False, False],\n    [True, True, False, False],\n    [False, False, True, False],\n    [True, True, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [True, True, False, False],\n    [False, False, False, False]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['control: scenario 1',\n   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:1', 'B:12']],\n    [{'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'B:3': True},\n     {'I:1': True, 'B:3': True},\n     {'I:1': True}]],\n   [[False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, True, False],\n    [True, False, True]]],\n  ['regression: scenario 2',\n   [[['OSF', 'I:1', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:10']],\n    [{'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': True},\n     {'I:0': False, 'B:3': True},\n     {'I:1': False}]],\n   [[False, False, False, False],\n    [False, False, False, False],\n    [False, False, True, False],\n    [False, False, False, False],\n    [True, False, True, False],\n    [False, False, False, False]]],\n  ['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:11'], ['OSF', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:12']],\n    [{'I:0': False, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'B:3': True},\n     {'I:1': True},\n     {'I:0': True, 'I:1': True, 'B:3': False}]],\n   [[False, False, False],\n    [False, False, True],\n    [False, True, False],\n    [True, False, True],\n    [False, False, False]]]],\n [['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:0', 'B:11'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:10']],\n    [{'I:0': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'B:3': False},\n     {'I:0': False, 'B:3': False},\n     {'I:0': False}]],\n   [[True, False, False, False],\n    [False, False, True, True],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, True, False, False],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False]]],\n  ['regression: scenario 9',\n   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:13']],\n    [{'I:0': True, 'I:1': False, 'B:3': False},\n     {'B:3': True},\n     {'I:1': False, 'B:3': True},\n     {'I:0': True, 'B:3': True},\n     {'I:0': False, 'B:3': True},\n     {'I:1': True, 'B:3': True}]],\n   [[False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, True, False]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['control: scenario 1',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:1': False},\n     {'I:0': False, 'I:1': False}]],\n   [[False, False, False],\n    [True, True, False],\n    [False, False, False],\n    [False, False, True],\n    [False, True, False],\n    [True, False, False],\n    [False, False, False],\n    [False, False, False]]],\n  ['control: scenario 2',\n   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:1', 'B:12'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True}]],\n   [[False, False, False, False],\n    [False, False, True, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, True, False]]],\n  ['regression: scenario 3',\n   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:11']],\n    [{'I:0': True, 'B:3': False},\n     {'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False},\n     {'I:0': False, 'B:3': False},\n     {'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'B:3': False}]],\n   [[True, False, True, True],\n    [False, False, True, False],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [True, False, False, False],\n    [False, False, False, True],\n    [True, False, True, False]]]],\n [['regression: scenario 15',\n   [[['OSR', 'I:0', 'B:12'], ['OSR', 'B:3', 'B:10'], ['OSR', 'I:1', 'B:12']],\n    [{'I:0': True, 'I:1': True},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': True, 'B:3': False}]],\n   [[False, False, False],\n    [False, True, False],\n    [False, False, True],\n    [False, False, False],\n    [True, False, False]]],\n  ['regression: scenario 7',\n   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:0', 'B:12']],\n    [{'I:0': True, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': True},\n     {'I:1': False, 'B:3': True}]],\n   [[False, False], [False, False], [False, False], [False, False], [True, False], [False, False]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['regression: scenario 1',\n   [[['OSF', 'I:1', 'B:12'], ['OSR', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11']],\n    [{'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'B:3': True}]],\n   [[False, False, False, False],\n    [True, False, False, False],\n    [False, False, True, True],\n    [True, False, False, False],\n    [False, True, False, False]]],\n  ['regression: scenario 2',\n   [[['OSF', 'I:0', 'B:13'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],\n    [{'I:0': True, 'I:1': False},\n     {'B:3': False},\n     {'I:1': False},\n     {'B:3': True},\n     {'I:0': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:1': False, 'B:3': False},\n     {'I:0': False, 'B:3': True}]],\n   [[False, False, False, False],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, True, False, False],\n    [False, False, False, False],\n    [False, True, False, False],\n    [True, False, False, False],\n    [False, True, False, False],\n    [False, False, False, False]]],\n  ['regression: scenario 3',\n   [[['OSR', 'I:1', 'B:11'], ['OSF', 'I:1', 'B:12']],\n    [{'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True}]],\n   [[False, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, False],\n    [True, False],\n    [False, False],\n    [False, 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":"fff50d40a1e63a2e386b3e938efaa40c380dde23edf369bf14f4d5fde854e974","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(instrs, scans):\n    store = {}\n    for kind, tag, st in instrs:\n        store[st] = kind != 'OSF'\n    out = []\n    for inputs in scans:\n        pulses = []\n        for kind, tag, st in instrs:\n            cur = bool(inputs.get(tag, False))\n            if kind == 'OSF':\n                pulse = store[st] and not cur\n            else:\n                pulse = cur and not store[st]\n            store[st] = cur\n            pulses.append(pulse)\n        out.append(pulses)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: scenario 1',\n   [[['OSR', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:12']],\n    [{'B:3': False},\n     {'I:0': False, 'I:1': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False, False],\n    [True, False, False],\n    [False, False, False],\n    [False, False, False],\n    [True, False, False],\n    [False, False, False],\n    [False, False, True],\n    [True, False, False]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['regression: scenario 2',\n   [[['OSF', 'I:1', 'B:13'], ['OSF', 'B:3', 'B:10']],\n    [{'I:0': True, 'B:3': False},\n     {'I:0': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False], [False, False], [False, False], [False, True], [True, False], [False, False]]],\n  ['control: scenario 3',\n   [[['OSF', 'I:0', 'B:12'], ['OSF', 'B:3', 'B:12']],\n    [{'I:0': True, 'I:1': True},\n     {'I:1': False, 'B:3': True},\n     {'I:1': False},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': False}]],\n   [[False, True], [False, False], [True, False], [False, False], [False, False]]],\n  ['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:12'], ['OSF', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:11'], ['OSR', 'B:3', 'B:12']],\n    [{'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True}]],\n   [[True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [True, False, True, False],\n    [False, False, False, False],\n    [False, False, True, False],\n    [False, False, False, False]]],\n  ['regression: scenario 5',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'B:3', 'B:12']],\n    [{'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False], [False, False], [False, False], [False, False], [False, False]]]],\n [['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['regression: scenario 5',\n   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:1', 'B:13']],\n    [{'I:0': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:1': False, 'B:3': True},\n     {'I:1': False, 'B:3': True}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [False, True],\n    [False, True]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['regression: scenario 1',\n   [[['OSF', 'B:3', 'B:11'], ['OSR', 'B:3', 'B:10']],\n    [{'I:0': False, 'B:3': True},\n     {'I:0': True, 'I:1': True},\n     {'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': False}]],\n   [[False, False], [True, False], [False, False], [False, False], [False, False], [False, False]]],\n  ['control: scenario 2',\n   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:0', 'B:11']],\n    [{'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, False]]],\n  ['regression: scenario 3',\n   [[['OSR', 'I:0', 'B:11'], ['OSF', 'I:0', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:12']],\n    [{'I:0': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:1': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True}]],\n   [[False, False, False, False],\n    [False, False, True, False],\n    [False, True, False, False],\n    [False, False, True, False],\n    [True, False, False, False],\n    [False, True, True, False]]],\n  ['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:12'], ['OSR', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:10']],\n    [{'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': False},\n     {'I:0': False, 'I:1': True},\n     {'I:0': True, 'I:1': True, 'B:3': False}]],\n   [[True, False, False],\n    [False, False, True],\n    [False, False, False],\n    [False, False, False],\n    [False, False, True]]]],\n [['regression: scenario 5',\n   [[['OSR', 'I:1', 'B:13'], ['OSF', 'I:1', 'B:12'], ['OSF', 'I:1', 'B:12']],\n    [{'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True}]],\n   [[False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, True, False],\n    [True, False, False]]],\n  ['regression: scenario 3',\n   [[['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],\n    [{'I:1': True, 'B:3': False},\n     {'I:0': True, 'B:3': True},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': True},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False}]],\n   [[False, False, False, False],\n    [True, True, False, False],\n    [False, False, True, False],\n    [True, True, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [True, True, False, False],\n    [False, False, False, False]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['control: scenario 1',\n   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:1', 'B:12']],\n    [{'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'B:3': True},\n     {'I:1': True, 'B:3': True},\n     {'I:1': True}]],\n   [[False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, True, False],\n    [True, False, True]]],\n  ['regression: scenario 2',\n   [[['OSF', 'I:1', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:10']],\n    [{'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': True},\n     {'I:0': False, 'B:3': True},\n     {'I:1': False}]],\n   [[False, False, False, False],\n    [False, False, False, False],\n    [False, False, True, False],\n    [False, False, False, False],\n    [True, False, True, False],\n    [False, False, False, False]]],\n  ['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:11'], ['OSF', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:12']],\n    [{'I:0': False, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'B:3': True},\n     {'I:1': True},\n     {'I:0': True, 'I:1': True, 'B:3': False}]],\n   [[False, False, False],\n    [False, False, True],\n    [False, True, False],\n    [True, False, True],\n    [False, False, False]]]],\n [['regression: scenario 4',\n   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:0', 'B:11'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:10']],\n    [{'I:0': False},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'B:3': False},\n     {'I:0': False, 'B:3': False},\n     {'I:0': False}]],\n   [[True, False, False, False],\n    [False, False, True, True],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, True, False, False],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False]]],\n  ['regression: scenario 9',\n   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:13']],\n    [{'I:0': True, 'I:1': False, 'B:3': False},\n     {'B:3': True},\n     {'I:1': False, 'B:3': True},\n     {'I:0': True, 'B:3': True},\n     {'I:0': False, 'B:3': True},\n     {'I:1': True, 'B:3': True}]],\n   [[False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, False, False],\n    [False, True, False]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['control: scenario 1',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:1': False},\n     {'I:0': False, 'I:1': False}]],\n   [[False, False, False],\n    [True, True, False],\n    [False, False, False],\n    [False, False, True],\n    [False, True, False],\n    [True, False, False],\n    [False, False, False],\n    [False, False, False]]],\n  ['control: scenario 2',\n   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:1', 'B:12'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True}]],\n   [[False, False, False, False],\n    [False, False, True, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, True, False]]],\n  ['regression: scenario 3',\n   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:11']],\n    [{'I:0': True, 'B:3': False},\n     {'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:0': False, 'I:1': False},\n     {'I:0': False, 'B:3': False},\n     {'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'B:3': False}]],\n   [[True, False, True, True],\n    [False, False, True, False],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [True, False, False, False],\n    [False, False, False, True],\n    [True, False, True, False]]]],\n [['regression: scenario 15',\n   [[['OSR', 'I:0', 'B:12'], ['OSR', 'B:3', 'B:10'], ['OSR', 'I:1', 'B:12']],\n    [{'I:0': True, 'I:1': True},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': False},\n     {'I:0': True, 'I:1': True, 'B:3': False}]],\n   [[False, False, False],\n    [False, True, False],\n    [False, False, True],\n    [False, False, False],\n    [True, False, False]]],\n  ['regression: scenario 7',\n   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:0', 'B:12']],\n    [{'I:0': True, 'I:1': False},\n     {'I:0': True, 'I:1': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'B:3': True},\n     {'I:1': False, 'B:3': True}]],\n   [[False, False], [False, False], [False, False], [False, False], [True, False], [False, False]]],\n  ['regression: input on at power-up',\n   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],\n    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],\n   [[False, False], [False, False], [False, False], [True, False], [False, True]]],\n  ['regression: shared storage',\n   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],\n    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],\n   [[False, False], [False, True], [False, True], [False, False]]],\n  ['control: falling edge train',\n   [[['OSF', 'I:0', 'B:12']],\n    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],\n   [[False], [True], [False], [False], [True], [False]]],\n  ['regression: scenario 1',\n   [[['OSF', 'I:1', 'B:12'], ['OSR', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11']],\n    [{'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': True, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': False},\n     {'B:3': True}]],\n   [[False, False, False, False],\n    [True, False, False, False],\n    [False, False, True, True],\n    [True, False, False, False],\n    [False, True, False, False]]],\n  ['regression: scenario 2',\n   [[['OSF', 'I:0', 'B:13'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],\n    [{'I:0': True, 'I:1': False},\n     {'B:3': False},\n     {'I:1': False},\n     {'B:3': True},\n     {'I:0': False, 'B:3': False},\n     {'I:0': False, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'B:3': False},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:1': False, 'B:3': False},\n     {'I:0': False, 'B:3': True}]],\n   [[False, False, False, False],\n    [True, False, False, False],\n    [False, False, False, False],\n    [False, False, False, False],\n    [False, True, False, False],\n    [False, False, False, False],\n    [False, True, False, False],\n    [True, False, False, False],\n    [False, True, False, False],\n    [False, False, False, False]]],\n  ['regression: scenario 3',\n   [[['OSR', 'I:1', 'B:11'], ['OSF', 'I:1', 'B:12']],\n    [{'I:0': False, 'I:1': False, 'B:3': False},\n     {'I:1': True, 'B:3': True},\n     {'I:0': False, 'I:1': True, 'B:3': False},\n     {'I:0': True, 'I:1': True, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': True, 'I:1': False, 'B:3': True},\n     {'I:0': False, 'I:1': True},\n     {'I:0': False, 'I:1': True, 'B:3': True},\n     {'I:0': True}]],\n   [[False, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, False],\n    [True, False],\n    [False, False],\n    [False, 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-osr-osf-one-shots-prescan-init","generated_at":"2026-09-29T14:51:41.214138+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":"Prescan sets OSR storage true and OSF storage false.","root_cause":"Prescan clears every one-shot storage bit regardless of instruction type.","sha256":"61cba154a00949511cb6227fbff251a1bc658340454dea8792ca515e25358fca","title":"OSR fires on the first scan when its input is already on at power-up · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.247,"exit_code":1,"observations":[{"actual":[[false,true],[false,false],[false,false],[true,false],[false,true]],"check":"regression: input on at power-up","expected":[[false,false],[false,false],[false,false],[true,false],[false,true]],"passed":false},{"actual":[[false,false,true],[true,false,false],[false,false,false],[false,false,false],[true,false,false],[false,false,false],[false,false,true],[true,false,false]],"check":"regression: scenario 1","expected":[[false,false,false],[true,false,false],[false,false,false],[false,false,false],[true,false,false],[false,false,false],[false,false,true],[true,false,false]],"passed":false},{"actual":[[false,false],[false,true],[false,true],[false,false]],"check":"regression: shared storage","expected":[[false,false],[false,true],[false,true],[false,false]],"passed":true},{"actual":[[false],[true],[false],[false],[true],[false]],"check":"control: falling edge train","expected":[[false],[true],[false],[false],[true],[false]],"passed":true},{"actual":[[true,true],[false,false],[false,false],[false,true],[true,false],[false,false]],"check":"regression: scenario 2","expected":[[false,false],[false,false],[false,false],[false,true],[true,false],[false,false]],"passed":false},{"actual":[[false,true],[false,false],[true,false],[false,false],[false,false]],"check":"control: scenario 3","expected":[[false,true],[false,false],[true,false],[false,false],[false,false]],"passed":true},{"actual":[[true,false,false,false],[false,false,false,false],[false,false,false,false],[true,false,true,false],[false,false,false,false],[false,false,true,false],[false,false,false,false]],"check":"regression: scenario 4","expected":[[true,false,false,false],[false,false,false,false],[false,false,false,false],[true,false,true,false],[false,false,false,false],[false,false,true,false],[false,false,false,false]],"passed":true},{"actual":[[false,true],[false,false],[false,false],[false,false],[false,false]],"check":"regression: scenario 5","expected":[[false,false],[false,false],[false,false],[false,false],[false,false]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: input on at power-up\", \"actual\": [[false, true], [false, false], [false, false], [true, false], [false, true]], \"expected\": [[false, false], [false, false], [false, false], [true, false], [false, true]], \"passed\": false}, {\"check\": \"regression: scenario 1\", \"actual\": [[false, false, true], [true, false, false], [false, false, false], [false, false, false], [true, false, false], [false, false, false], [false, false, true], [true, false, false]], \"expected\": [[false, false, false], [true, false, false], [false, false, false], [false, false, false], [true, false, false], [false, false, false], [false, false, true], [true, false, false]], \"passed\": false}, {\"check\": \"regression: shared storage\", \"actual\": [[false, false], [false, true], [false, true], [false, false]], \"expected\": [[false, false], [false, true], [false, true], [false, false]], \"passed\": true}, {\"check\": \"control: falling edge train\", \"actual\": [[false], [true], [false], [false], [true], [false]], \"expected\": [[false], [true], [false], [false], [true], [false]], \"passed\": true}, {\"check\": \"regression: scenario 2\", \"actual\": [[true, true], [false, false], [false, false], [false, true], [true, false], [false, false]], \"expected\": [[false, false], [false, false], [false, false], [false, true], [true, false], [false, false]], \"passed\": false}, {\"check\": \"control: scenario 3\", \"actual\": [[false, true], [false, false], [true, false], [false, false], [false, false]], \"expected\": [[false, true], [false, false], [true, false], [false, false], [false, false]], \"passed\": true}, {\"check\": \"regression: scenario 4\", \"actual\": [[true, false, false, false], [false, false, false, false], [false, false, false, false], [true, false, true, false], [false, false, false, false], [false, false, true, false], [false, false, false, false]], \"expected\": [[true, false, false, false], [false, false, false, false], [false, false, false, false], [true, false, true, false], [false, false, false, false], [false, false, true, false], [false, false, false, false]], \"passed\": true}, {\"check\": \"regression: scenario 5\", \"actual\": [[false, true], [false, false], [false, false], [false, false], [false, false]], \"expected\": [[false, false], [false, false], [false, false], [false, false], [false, false]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.941,"exit_code":1,"observations":[{"actual":[[true,false],[false,false],[false,false],[true,false],[false,true]],"check":"regression: input on at power-up","expected":[[false,false],[false,false],[false,false],[true,false],[false,true]],"passed":false},{"actual":[[false,false,false],[true,false,false],[false,false,false],[false,false,false],[true,false,false],[false,false,false],[false,false,true],[true,false,false]],"check":"regression: scenario 1","expected":[[false,false,false],[true,false,false],[false,false,false],[false,false,false],[true,false,false],[false,false,false],[false,false,true],[true,false,false]],"passed":true},{"actual":[[true,false],[false,true],[false,true],[false,false]],"check":"regression: shared storage","expected":[[false,false],[false,true],[false,true],[false,false]],"passed":false},{"actual":[[false],[true],[false],[false],[true],[false]],"check":"control: falling edge train","expected":[[false],[true],[false],[false],[true],[false]],"passed":true},{"actual":[[false,false],[false,false],[false,false],[false,true],[true,false],[false,false]],"check":"regression: scenario 2","expected":[[false,false],[false,false],[false,false],[false,true],[true,false],[false,false]],"passed":true},{"actual":[[false,true],[false,false],[true,false],[false,false],[false,false]],"check":"control: scenario 3","expected":[[false,true],[false,false],[true,false],[false,false],[false,false]],"passed":true},{"actual":[[false,false,false,false],[false,false,false,false],[false,false,false,false],[true,false,true,false],[false,false,false,false],[false,false,true,false],[false,false,false,false]],"check":"regression: scenario 4","expected":[[true,false,false,false],[false,false,false,false],[false,false,false,false],[true,false,true,false],[false,false,false,false],[false,false,true,false],[false,false,false,false]],"passed":false},{"actual":[[true,false],[false,false],[false,false],[false,false],[false,false]],"check":"regression: scenario 5","expected":[[false,false],[false,false],[false,false],[false,false],[false,false]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: input on at power-up\", \"actual\": [[true, false], [false, false], [false, false], [true, false], [false, true]], \"expected\": [[false, false], [false, false], [false, false], [true, false], [false, true]], \"passed\": false}, {\"check\": \"regression: scenario 1\", \"actual\": [[false, false, false], [true, false, false], [false, false, false], [false, false, false], [true, false, false], [false, false, false], [false, false, true], [true, false, false]], \"expected\": [[false, false, false], [true, false, false], [false, false, false], [false, false, false], [true, false, false], [false, false, false], [false, false, true], [true, false, false]], \"passed\": true}, {\"check\": \"regression: shared storage\", \"actual\": [[true, false], [false, true], [false, true], [false, false]], \"expected\": [[false, false], [false, true], [false, true], [false, false]], \"passed\": false}, {\"check\": \"control: falling edge train\", \"actual\": [[false], [true], [false], [false], [true], [false]], \"expected\": [[false], [true], [false], [false], [true], [false]], \"passed\": true}, {\"check\": \"regression: scenario 2\", \"actual\": [[false, false], [false, false], [false, false], [false, true], [true, false], [false, false]], \"expected\": [[false, false], [false, false], [false, false], [false, true], [true, false], [false, false]], \"passed\": true}, {\"check\": \"control: scenario 3\", \"actual\": [[false, true], [false, false], [true, false], [false, false], [false, false]], \"expected\": [[false, true], [false, false], [true, false], [false, false], [false, false]], \"passed\": true}, {\"check\": \"regression: scenario 4\", \"actual\": [[false, false, false, false], [false, false, false, false], [false, false, false, false], [true, false, true, false], [false, false, false, false], [false, false, true, false], [false, false, false, false]], \"expected\": [[true, false, false, false], [false, false, false, false], [false, false, false, false], [true, false, true, false], [false, false, false, false], [false, false, true, false], [false, false, false, false]], \"passed\": false}, {\"check\": \"regression: scenario 5\", \"actual\": [[true, false], [false, false], [false, false], [false, false], [false, false]], \"expected\": [[false, false], [false, false], [false, false], [false, false], [false, false]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.126,"exit_code":0,"observations":[{"actual":[[false,false],[false,false],[false,false],[true,false],[false,true]],"check":"regression: input on at power-up","expected":[[false,false],[false,false],[false,false],[true,false],[false,true]],"passed":true},{"actual":[[false,false,false],[true,false,false],[false,false,false],[false,false,false],[true,false,false],[false,false,false],[false,false,true],[true,false,false]],"check":"regression: scenario 1","expected":[[false,false,false],[true,false,false],[false,false,false],[false,false,false],[true,false,false],[false,false,false],[false,false,true],[true,false,false]],"passed":true},{"actual":[[false,false],[false,true],[false,true],[false,false]],"check":"regression: shared storage","expected":[[false,false],[false,true],[false,true],[false,false]],"passed":true},{"actual":[[false],[true],[false],[false],[true],[false]],"check":"control: falling edge train","expected":[[false],[true],[false],[false],[true],[false]],"passed":true},{"actual":[[false,false],[false,false],[false,false],[false,true],[true,false],[false,false]],"check":"regression: scenario 2","expected":[[false,false],[false,false],[false,false],[false,true],[true,false],[false,false]],"passed":true},{"actual":[[false,true],[false,false],[true,false],[false,false],[false,false]],"check":"control: scenario 3","expected":[[false,true],[false,false],[true,false],[false,false],[false,false]],"passed":true},{"actual":[[true,false,false,false],[false,false,false,false],[false,false,false,false],[true,false,true,false],[false,false,false,false],[false,false,true,false],[false,false,false,false]],"check":"regression: scenario 4","expected":[[true,false,false,false],[false,false,false,false],[false,false,false,false],[true,false,true,false],[false,false,false,false],[false,false,true,false],[false,false,false,false]],"passed":true},{"actual":[[false,false],[false,false],[false,false],[false,false],[false,false]],"check":"regression: scenario 5","expected":[[false,false],[false,false],[false,false],[false,false],[false,false]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: input on at power-up\", \"actual\": [[false, false], [false, false], [false, false], [true, false], [false, true]], \"expected\": [[false, false], [false, false], [false, false], [true, false], [false, true]], \"passed\": true}, {\"check\": \"regression: scenario 1\", \"actual\": [[false, false, false], [true, false, false], [false, false, false], [false, false, false], [true, false, false], [false, false, false], [false, false, true], [true, false, false]], \"expected\": [[false, false, false], [true, false, false], [false, false, false], [false, false, false], [true, false, false], [false, false, false], [false, false, true], [true, false, false]], \"passed\": true}, {\"check\": \"regression: shared storage\", \"actual\": [[false, false], [false, true], [false, true], [false, false]], \"expected\": [[false, false], [false, true], [false, true], [false, false]], \"passed\": true}, {\"check\": \"control: falling edge train\", \"actual\": [[false], [true], [false], [false], [true], [false]], \"expected\": [[false], [true], [false], [false], [true], [false]], \"passed\": true}, {\"check\": \"regression: scenario 2\", \"actual\": [[false, false], [false, false], [false, false], [false, true], [true, false], [false, false]], \"expected\": [[false, false], [false, false], [false, false], [false, true], [true, false], [false, false]], \"passed\": true}, {\"check\": \"control: scenario 3\", \"actual\": [[false, true], [false, false], [true, false], [false, false], [false, false]], \"expected\": [[false, true], [false, false], [true, false], [false, false], [false, false]], \"passed\": true}, {\"check\": \"regression: scenario 4\", \"actual\": [[true, false, false, false], [false, false, false, false], [false, false, false, false], [true, false, true, false], [false, false, false, false], [false, false, true, false], [false, false, false, false]], \"expected\": [[true, false, false, false], [false, false, false, false], [false, false, false, false], [true, false, true, false], [false, false, false, false], [false, false, true, false], [false, false, false, false]], \"passed\": true}, {\"check\": \"regression: scenario 5\", \"actual\": [[false, false], [false, false], [false, false], [false, false], [false, false]], \"expected\": [[false, false], [false, false], [false, false], [false, false], [false, false]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}