broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(instrs, scans):
    store = {}
    for kind, tag, st in instrs:
        store[st] = False
    out = []
    for inputs in scans:
        pulses = []
        for kind, tag, st in instrs:
            cur = bool(inputs.get(tag, False))
            if kind == 'OSF':
                pulse = store[st] and not cur
            else:
                pulse = cur and not store[st]
            store[st] = cur
            pulses.append(pulse)
        out.append(pulses)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['regression: scenario 1',
   [[['OSR', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:12']],
    [{'B:3': False},
     {'I:0': False, 'I:1': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False, False],
    [True, False, False],
    [False, False, False],
    [False, False, False],
    [True, False, False],
    [False, False, False],
    [False, False, True],
    [True, False, False]]],
  ['regression: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['control: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 2',
   [[['OSF', 'I:1', 'B:13'], ['OSF', 'B:3', 'B:10']],
    [{'I:0': True, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False], [False, False], [False, False], [False, True], [True, False], [False, False]]],
  ['control: scenario 3',
   [[['OSF', 'I:0', 'B:12'], ['OSF', 'B:3', 'B:12']],
    [{'I:0': True, 'I:1': True},
     {'I:1': False, 'B:3': True},
     {'I:1': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': False}]],
   [[False, True], [False, False], [True, False], [False, False], [False, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:12'], ['OSF', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:11'], ['OSR', 'B:3', 'B:12']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True}]],
   [[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]]],
  ['regression: scenario 5',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'B:3', 'B:12']],
    [{'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False], [False, False], [False, False], [False, False], [False, False]]]],
 [['regression: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['regression: scenario 5',
   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:1', 'B:13']],
    [{'I:0': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': False, 'B:3': True},
     {'I:1': False, 'B:3': True}]],
   [[False, False],
    [False, False],
    [False, True],
    [False, False],
    [True, False],
    [True, False],
    [False, False],
    [True, False],
    [False, True],
    [False, True]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['control: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 1',
   [[['OSF', 'B:3', 'B:11'], ['OSR', 'B:3', 'B:10']],
    [{'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True},
     {'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False}]],
   [[False, False], [True, False], [False, False], [False, False], [False, False], [False, False]]],
  ['control: scenario 2',
   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:0', 'B:11']],
    [{'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False},
     {'I:0': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False],
    [False, False],
    [False, True],
    [False, False],
    [False, False],
    [False, False],
    [False, True],
    [False, False]]],
  ['regression: scenario 3',
   [[['OSR', 'I:0', 'B:11'], ['OSF', 'I:0', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:12']],
    [{'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:1': True},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True}]],
   [[False, False, False, False],
    [False, False, True, False],
    [False, True, False, False],
    [False, False, True, False],
    [True, False, False, False],
    [False, True, True, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:12'], ['OSR', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:10']],
    [{'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': False},
     {'I:0': False, 'I:1': True},
     {'I:0': True, 'I:1': True, 'B:3': False}]],
   [[True, False, False],
    [False, False, True],
    [False, False, False],
    [False, False, False],
    [False, False, True]]]],
 [['regression: scenario 5',
   [[['OSR', 'I:1', 'B:13'], ['OSF', 'I:1', 'B:12'], ['OSF', 'I:1', 'B:12']],
    [{'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, True, False],
    [True, False, False]]],
  ['regression: scenario 3',
   [[['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],
    [{'I:1': True, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': True},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False}]],
   [[False, False, False, False],
    [True, True, False, False],
    [False, False, True, False],
    [True, True, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [True, True, False, False],
    [False, False, False, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['regression: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['control: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['control: scenario 1',
   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:1', 'B:12']],
    [{'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False},
     {'I:0': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:1': True, 'B:3': True},
     {'I:1': True}]],
   [[False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, True, False],
    [True, False, True]]],
  ['regression: scenario 2',
   [[['OSF', 'I:1', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True},
     {'I:0': False, 'B:3': True},
     {'I:1': False}]],
   [[False, False, False, False],
    [False, False, False, False],
    [False, False, True, False],
    [False, False, False, False],
    [True, False, True, False],
    [False, False, False, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:11'], ['OSF', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:12']],
    [{'I:0': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'B:3': True},
     {'I:1': True},
     {'I:0': True, 'I:1': True, 'B:3': False}]],
   [[False, False, False],
    [False, False, True],
    [False, True, False],
    [True, False, True],
    [False, False, False]]]],
 [['regression: scenario 4',
   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:0', 'B:11'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:10']],
    [{'I:0': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:0': False}]],
   [[True, False, False, False],
    [False, False, True, True],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False]]],
  ['regression: scenario 9',
   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:13']],
    [{'I:0': True, 'I:1': False, 'B:3': False},
     {'B:3': True},
     {'I:1': False, 'B:3': True},
     {'I:0': True, 'B:3': True},
     {'I:0': False, 'B:3': True},
     {'I:1': True, 'B:3': True}]],
   [[False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, True, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['regression: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['control: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['control: scenario 1',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:1': False},
     {'I:0': False, 'I:1': False}]],
   [[False, False, False],
    [True, True, False],
    [False, False, False],
    [False, False, True],
    [False, True, False],
    [True, False, False],
    [False, False, False],
    [False, False, False]]],
  ['control: scenario 2',
   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:1', 'B:12'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True}]],
   [[False, False, False, False],
    [False, False, True, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, True, False]]],
  ['regression: scenario 3',
   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:11']],
    [{'I:0': True, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'B:3': False}]],
   [[True, False, True, True],
    [False, False, True, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [True, False, False, False],
    [False, False, False, True],
    [True, False, True, False]]]],
 [['regression: scenario 15',
   [[['OSR', 'I:0', 'B:12'], ['OSR', 'B:3', 'B:10'], ['OSR', 'I:1', 'B:12']],
    [{'I:0': True, 'I:1': True},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': True, 'B:3': False}]],
   [[False, False, False],
    [False, True, False],
    [False, False, True],
    [False, False, False],
    [True, False, False]]],
  ['regression: scenario 7',
   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:0', 'B:12']],
    [{'I:0': True, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': True},
     {'I:1': False, 'B:3': True}]],
   [[False, False], [False, False], [False, False], [False, False], [True, False], [False, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['regression: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['control: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 1',
   [[['OSF', 'I:1', 'B:12'], ['OSR', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11']],
    [{'I:0': True, 'I:1': True, 'B:3': True},
     {'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'B:3': True}]],
   [[False, False, False, False],
    [True, False, False, False],
    [False, False, True, True],
    [True, False, False, False],
    [False, True, False, False]]],
  ['regression: scenario 2',
   [[['OSF', 'I:0', 'B:13'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],
    [{'I:0': True, 'I:1': False},
     {'B:3': False},
     {'I:1': False},
     {'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:1': False, 'B:3': False},
     {'I:0': False, 'B:3': True}]],
   [[False, False, False, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [True, False, False, False],
    [False, True, False, False],
    [False, False, False, False]]],
  ['regression: scenario 3',
   [[['OSR', 'I:1', 'B:11'], ['OSF', 'I:1', 'B:12']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True}]],
   [[False, False],
    [True, False],
    [False, False],
    [False, False],
    [False, True],
    [False, False],
    [True, False],
    [False, False],
    [False, True]]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(instrs, scans):
    store = {}
    for kind, tag, st in instrs:
        store[st] = True
    out = []
    for inputs in scans:
        pulses = []
        for kind, tag, st in instrs:
            cur = bool(inputs.get(tag, False))
            if kind == 'OSF':
                pulse = store[st] and not cur
            else:
                pulse = cur and not store[st]
            store[st] = cur
            pulses.append(pulse)
        out.append(pulses)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['regression: scenario 1',
   [[['OSR', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:12']],
    [{'B:3': False},
     {'I:0': False, 'I:1': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False, False],
    [True, False, False],
    [False, False, False],
    [False, False, False],
    [True, False, False],
    [False, False, False],
    [False, False, True],
    [True, False, False]]],
  ['regression: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['control: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 2',
   [[['OSF', 'I:1', 'B:13'], ['OSF', 'B:3', 'B:10']],
    [{'I:0': True, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False], [False, False], [False, False], [False, True], [True, False], [False, False]]],
  ['control: scenario 3',
   [[['OSF', 'I:0', 'B:12'], ['OSF', 'B:3', 'B:12']],
    [{'I:0': True, 'I:1': True},
     {'I:1': False, 'B:3': True},
     {'I:1': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': False}]],
   [[False, True], [False, False], [True, False], [False, False], [False, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:12'], ['OSF', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:11'], ['OSR', 'B:3', 'B:12']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True}]],
   [[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]]],
  ['regression: scenario 5',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'B:3', 'B:12']],
    [{'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False], [False, False], [False, False], [False, False], [False, False]]]],
 [['regression: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['regression: scenario 5',
   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:1', 'B:13']],
    [{'I:0': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': False, 'B:3': True},
     {'I:1': False, 'B:3': True}]],
   [[False, False],
    [False, False],
    [False, True],
    [False, False],
    [True, False],
    [True, False],
    [False, False],
    [True, False],
    [False, True],
    [False, True]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['control: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 1',
   [[['OSF', 'B:3', 'B:11'], ['OSR', 'B:3', 'B:10']],
    [{'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True},
     {'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False}]],
   [[False, False], [True, False], [False, False], [False, False], [False, False], [False, False]]],
  ['control: scenario 2',
   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:0', 'B:11']],
    [{'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False},
     {'I:0': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False],
    [False, False],
    [False, True],
    [False, False],
    [False, False],
    [False, False],
    [False, True],
    [False, False]]],
  ['regression: scenario 3',
   [[['OSR', 'I:0', 'B:11'], ['OSF', 'I:0', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:12']],
    [{'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:1': True},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True}]],
   [[False, False, False, False],
    [False, False, True, False],
    [False, True, False, False],
    [False, False, True, False],
    [True, False, False, False],
    [False, True, True, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:12'], ['OSR', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:10']],
    [{'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': False},
     {'I:0': False, 'I:1': True},
     {'I:0': True, 'I:1': True, 'B:3': False}]],
   [[True, False, False],
    [False, False, True],
    [False, False, False],
    [False, False, False],
    [False, False, True]]]],
 [['regression: scenario 5',
   [[['OSR', 'I:1', 'B:13'], ['OSF', 'I:1', 'B:12'], ['OSF', 'I:1', 'B:12']],
    [{'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, True, False],
    [True, False, False]]],
  ['regression: scenario 3',
   [[['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],
    [{'I:1': True, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': True},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False}]],
   [[False, False, False, False],
    [True, True, False, False],
    [False, False, True, False],
    [True, True, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [True, True, False, False],
    [False, False, False, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['regression: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['control: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['control: scenario 1',
   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:1', 'B:12']],
    [{'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False},
     {'I:0': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:1': True, 'B:3': True},
     {'I:1': True}]],
   [[False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, True, False],
    [True, False, True]]],
  ['regression: scenario 2',
   [[['OSF', 'I:1', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True},
     {'I:0': False, 'B:3': True},
     {'I:1': False}]],
   [[False, False, False, False],
    [False, False, False, False],
    [False, False, True, False],
    [False, False, False, False],
    [True, False, True, False],
    [False, False, False, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:11'], ['OSF', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:12']],
    [{'I:0': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'B:3': True},
     {'I:1': True},
     {'I:0': True, 'I:1': True, 'B:3': False}]],
   [[False, False, False],
    [False, False, True],
    [False, True, False],
    [True, False, True],
    [False, False, False]]]],
 [['regression: scenario 4',
   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:0', 'B:11'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:10']],
    [{'I:0': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:0': False}]],
   [[True, False, False, False],
    [False, False, True, True],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False]]],
  ['regression: scenario 9',
   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:13']],
    [{'I:0': True, 'I:1': False, 'B:3': False},
     {'B:3': True},
     {'I:1': False, 'B:3': True},
     {'I:0': True, 'B:3': True},
     {'I:0': False, 'B:3': True},
     {'I:1': True, 'B:3': True}]],
   [[False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, True, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['regression: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['control: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['control: scenario 1',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:1': False},
     {'I:0': False, 'I:1': False}]],
   [[False, False, False],
    [True, True, False],
    [False, False, False],
    [False, False, True],
    [False, True, False],
    [True, False, False],
    [False, False, False],
    [False, False, False]]],
  ['control: scenario 2',
   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:1', 'B:12'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True}]],
   [[False, False, False, False],
    [False, False, True, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, True, False]]],
  ['regression: scenario 3',
   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:11']],
    [{'I:0': True, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'B:3': False}]],
   [[True, False, True, True],
    [False, False, True, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [True, False, False, False],
    [False, False, False, True],
    [True, False, True, False]]]],
 [['regression: scenario 15',
   [[['OSR', 'I:0', 'B:12'], ['OSR', 'B:3', 'B:10'], ['OSR', 'I:1', 'B:12']],
    [{'I:0': True, 'I:1': True},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': True, 'B:3': False}]],
   [[False, False, False],
    [False, True, False],
    [False, False, True],
    [False, False, False],
    [True, False, False]]],
  ['regression: scenario 7',
   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:0', 'B:12']],
    [{'I:0': True, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': True},
     {'I:1': False, 'B:3': True}]],
   [[False, False], [False, False], [False, False], [False, False], [True, False], [False, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['regression: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['control: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 1',
   [[['OSF', 'I:1', 'B:12'], ['OSR', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11']],
    [{'I:0': True, 'I:1': True, 'B:3': True},
     {'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'B:3': True}]],
   [[False, False, False, False],
    [True, False, False, False],
    [False, False, True, True],
    [True, False, False, False],
    [False, True, False, False]]],
  ['regression: scenario 2',
   [[['OSF', 'I:0', 'B:13'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],
    [{'I:0': True, 'I:1': False},
     {'B:3': False},
     {'I:1': False},
     {'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:1': False, 'B:3': False},
     {'I:0': False, 'B:3': True}]],
   [[False, False, False, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [True, False, False, False],
    [False, True, False, False],
    [False, False, False, False]]],
  ['regression: scenario 3',
   [[['OSR', 'I:1', 'B:11'], ['OSF', 'I:1', 'B:12']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True}]],
   [[False, False],
    [True, False],
    [False, False],
    [False, False],
    [False, True],
    [False, False],
    [True, False],
    [False, False],
    [False, True]]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

prompt:
A start sequence is triggered by a restart because an input that was already held on is seen as a new rising edge.

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.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(instrs, scans):
    store = {}
    for kind, tag, st in instrs:
        store[st] = kind != 'OSF'
    out = []
    for inputs in scans:
        pulses = []
        for kind, tag, st in instrs:
            cur = bool(inputs.get(tag, False))
            if kind == 'OSF':
                pulse = not cur
            else:
                pulse = cur and not store[st]
            store[st] = cur
            pulses.append(pulse)
        out.append(pulses)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['regression: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['control: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['regression: scenario 1',
   [[['OSR', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:12']],
    [{'B:3': False},
     {'I:0': False, 'I:1': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False, False],
    [True, False, False],
    [False, False, False],
    [False, False, False],
    [True, False, False],
    [False, False, False],
    [False, False, True],
    [True, False, False]]],
  ['regression: scenario 2',
   [[['OSF', 'I:1', 'B:13'], ['OSF', 'B:3', 'B:10']],
    [{'I:0': True, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False], [False, False], [False, False], [False, True], [True, False], [False, False]]],
  ['regression: scenario 3',
   [[['OSF', 'I:0', 'B:12'], ['OSF', 'B:3', 'B:12']],
    [{'I:0': True, 'I:1': True},
     {'I:1': False, 'B:3': True},
     {'I:1': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': False}]],
   [[False, True], [False, False], [True, False], [False, False], [False, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:12'], ['OSF', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:11'], ['OSR', 'B:3', 'B:12']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True}]],
   [[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]]],
  ['regression: scenario 5',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'B:3', 'B:12']],
    [{'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False], [False, False], [False, False], [False, False], [False, False]]]],
 [['regression: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 1',
   [[['OSF', 'B:3', 'B:11'], ['OSR', 'B:3', 'B:10']],
    [{'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True},
     {'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False}]],
   [[False, False], [True, False], [False, False], [False, False], [False, False], [False, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['control: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['control: scenario 2',
   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:0', 'B:11']],
    [{'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False},
     {'I:0': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False],
    [False, False],
    [False, True],
    [False, False],
    [False, False],
    [False, False],
    [False, True],
    [False, False]]],
  ['regression: scenario 3',
   [[['OSR', 'I:0', 'B:11'], ['OSF', 'I:0', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:12']],
    [{'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:1': True},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True}]],
   [[False, False, False, False],
    [False, False, True, False],
    [False, True, False, False],
    [False, False, True, False],
    [True, False, False, False],
    [False, True, True, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:12'], ['OSR', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:10']],
    [{'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': False},
     {'I:0': False, 'I:1': True},
     {'I:0': True, 'I:1': True, 'B:3': False}]],
   [[True, False, False],
    [False, False, True],
    [False, False, False],
    [False, False, False],
    [False, False, True]]],
  ['regression: scenario 5',
   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:1', 'B:13']],
    [{'I:0': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': False, 'B:3': True},
     {'I:1': False, 'B:3': True}]],
   [[False, False],
    [False, False],
    [False, True],
    [False, False],
    [True, False],
    [True, False],
    [False, False],
    [True, False],
    [False, True],
    [False, True]]]],
 [['regression: scenario 1',
   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:1', 'B:12']],
    [{'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False},
     {'I:0': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:1': True, 'B:3': True},
     {'I:1': True}]],
   [[False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, True, False],
    [True, False, True]]],
  ['regression: scenario 2',
   [[['OSF', 'I:1', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True},
     {'I:0': False, 'B:3': True},
     {'I:1': False}]],
   [[False, False, False, False],
    [False, False, False, False],
    [False, False, True, False],
    [False, False, False, False],
    [True, False, True, False],
    [False, False, False, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['control: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['regression: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 3',
   [[['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],
    [{'I:1': True, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': True},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False}]],
   [[False, False, False, False],
    [True, True, False, False],
    [False, False, True, False],
    [True, True, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [True, True, False, False],
    [False, False, False, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:11'], ['OSF', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:12']],
    [{'I:0': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'B:3': True},
     {'I:1': True},
     {'I:0': True, 'I:1': True, 'B:3': False}]],
   [[False, False, False],
    [False, False, True],
    [False, True, False],
    [True, False, True],
    [False, False, False]]],
  ['regression: scenario 5',
   [[['OSR', 'I:1', 'B:13'], ['OSF', 'I:1', 'B:12'], ['OSF', 'I:1', 'B:12']],
    [{'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, True, False],
    [True, False, False]]]],
 [['regression: scenario 4',
   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:0', 'B:11'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:10']],
    [{'I:0': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:0': False}]],
   [[True, False, False, False],
    [False, False, True, True],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False]]],
  ['regression: scenario 5',
   [[['OSR', 'I:0', 'B:11'], ['OSF', 'I:1', 'B:12'], ['OSR', 'I:0', 'B:10'], ['OSR', 'I:0', 'B:13']],
    [{'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:1': False, 'B:3': False},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False}]],
   [[False, False, False, False],
    [False, True, False, False],
    [True, False, True, True],
    [False, False, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [True, False, True, True],
    [False, False, False, False],
    [True, True, True, True]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['control: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['regression: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['control: scenario 1',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:1': False},
     {'I:0': False, 'I:1': False}]],
   [[False, False, False],
    [True, True, False],
    [False, False, False],
    [False, False, True],
    [False, True, False],
    [True, False, False],
    [False, False, False],
    [False, False, False]]],
  ['control: scenario 2',
   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:1', 'B:12'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True}]],
   [[False, False, False, False],
    [False, False, True, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, True, False]]],
  ['regression: scenario 3',
   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:11']],
    [{'I:0': True, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'B:3': False}]],
   [[True, False, True, True],
    [False, False, True, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [True, False, False, False],
    [False, False, False, True],
    [True, False, True, False]]]],
 [['regression: scenario 3',
   [[['OSR', 'I:1', 'B:11'], ['OSF', 'I:1', 'B:12']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True}]],
   [[False, False],
    [True, False],
    [False, False],
    [False, False],
    [False, True],
    [False, False],
    [True, False],
    [False, False],
    [False, True]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:11'], ['OSF', 'I:0', 'B:12'], ['OSF', 'I:0', 'B:13']],
    [{'I:1': True},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': True}]],
   [[False, False, False],
    [False, False, False],
    [True, False, False],
    [False, True, True],
    [False, False, False],
    [False, False, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['control: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['regression: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 1',
   [[['OSF', 'I:1', 'B:12'], ['OSR', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11']],
    [{'I:0': True, 'I:1': True, 'B:3': True},
     {'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'B:3': True}]],
   [[False, False, False, False],
    [True, False, False, False],
    [False, False, True, True],
    [True, False, False, False],
    [False, True, False, False]]],
  ['regression: scenario 2',
   [[['OSF', 'I:0', 'B:13'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],
    [{'I:0': True, 'I:1': False},
     {'B:3': False},
     {'I:1': False},
     {'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:1': False, 'B:3': False},
     {'I:0': False, 'B:3': True}]],
   [[False, False, False, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [True, False, False, False],
    [False, True, False, False],
    [False, False, False, False]]],
  ['regression: scenario 5',
   [[['OSR', 'B:3', 'B:12'], ['OSF', 'B:3', 'B:12']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'B:3': True},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': False}]],
   [[False, False], [False, False], [True, False], [False, False], [False, False], [False, False]]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

meaning: Fixture-count band, not measured model difficulty

deps: stdlib

source:
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(instrs, scans):
    store = {}
    for kind, tag, st in instrs:
        store[st] = kind != 'OSF'
    out = []
    for inputs in scans:
        pulses = []
        for kind, tag, st in instrs:
            cur = bool(inputs.get(tag, False))
            if kind == 'OSF':
                pulse = store[st] != cur
            else:
                pulse = cur and not store[st]
            store[st] = cur
            pulses.append(pulse)
        out.append(pulses)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['regression: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['control: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['regression: scenario 1',
   [[['OSR', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:12']],
    [{'B:3': False},
     {'I:0': False, 'I:1': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False, False],
    [True, False, False],
    [False, False, False],
    [False, False, False],
    [True, False, False],
    [False, False, False],
    [False, False, True],
    [True, False, False]]],
  ['regression: scenario 2',
   [[['OSF', 'I:1', 'B:13'], ['OSF', 'B:3', 'B:10']],
    [{'I:0': True, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False], [False, False], [False, False], [False, True], [True, False], [False, False]]],
  ['regression: scenario 3',
   [[['OSF', 'I:0', 'B:12'], ['OSF', 'B:3', 'B:12']],
    [{'I:0': True, 'I:1': True},
     {'I:1': False, 'B:3': True},
     {'I:1': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': False}]],
   [[False, True], [False, False], [True, False], [False, False], [False, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:12'], ['OSF', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:11'], ['OSR', 'B:3', 'B:12']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True}]],
   [[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]]],
  ['regression: scenario 5',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'B:3', 'B:12']],
    [{'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False], [False, False], [False, False], [False, False], [False, False]]]],
 [['regression: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 1',
   [[['OSF', 'B:3', 'B:11'], ['OSR', 'B:3', 'B:10']],
    [{'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True},
     {'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False}]],
   [[False, False], [True, False], [False, False], [False, False], [False, False], [False, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['control: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['control: scenario 2',
   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:0', 'B:11']],
    [{'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False},
     {'I:0': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False],
    [False, False],
    [False, True],
    [False, False],
    [False, False],
    [False, False],
    [False, True],
    [False, False]]],
  ['regression: scenario 3',
   [[['OSR', 'I:0', 'B:11'], ['OSF', 'I:0', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:12']],
    [{'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:1': True},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True}]],
   [[False, False, False, False],
    [False, False, True, False],
    [False, True, False, False],
    [False, False, True, False],
    [True, False, False, False],
    [False, True, True, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:12'], ['OSR', 'B:3', 'B:12'], ['OSR', 'I:0', 'B:10']],
    [{'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': False},
     {'I:0': False, 'I:1': True},
     {'I:0': True, 'I:1': True, 'B:3': False}]],
   [[True, False, False],
    [False, False, True],
    [False, False, False],
    [False, False, False],
    [False, False, True]]],
  ['regression: scenario 5',
   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:1', 'B:13']],
    [{'I:0': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': False, 'B:3': True},
     {'I:1': False, 'B:3': True}]],
   [[False, False],
    [False, False],
    [False, True],
    [False, False],
    [True, False],
    [True, False],
    [False, False],
    [True, False],
    [False, True],
    [False, True]]]],
 [['regression: scenario 1',
   [[['OSF', 'B:3', 'B:12'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:1', 'B:12']],
    [{'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False},
     {'I:0': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:1': True, 'B:3': True},
     {'I:1': True}]],
   [[False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, True, False],
    [True, False, True]]],
  ['regression: scenario 2',
   [[['OSF', 'I:1', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True},
     {'I:0': False, 'B:3': True},
     {'I:1': False}]],
   [[False, False, False, False],
    [False, False, False, False],
    [False, False, True, False],
    [False, False, False, False],
    [True, False, True, False],
    [False, False, False, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['control: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['regression: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 3',
   [[['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],
    [{'I:1': True, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': True},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False}]],
   [[False, False, False, False],
    [True, True, False, False],
    [False, False, True, False],
    [True, True, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [True, True, False, False],
    [False, False, False, False]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:11'], ['OSF', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:12']],
    [{'I:0': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'B:3': True},
     {'I:1': True},
     {'I:0': True, 'I:1': True, 'B:3': False}]],
   [[False, False, False],
    [False, False, True],
    [False, True, False],
    [True, False, True],
    [False, False, False]]],
  ['regression: scenario 5',
   [[['OSR', 'I:1', 'B:13'], ['OSF', 'I:1', 'B:12'], ['OSF', 'I:1', 'B:12']],
    [{'I:0': True, 'I:1': True, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True}]],
   [[False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, False, False],
    [False, True, False],
    [True, False, False]]]],
 [['regression: scenario 4',
   [[['OSF', 'B:3', 'B:13'], ['OSF', 'I:0', 'B:11'], ['OSR', 'I:1', 'B:13'], ['OSR', 'I:0', 'B:10']],
    [{'I:0': False},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:0': False}]],
   [[True, False, False, False],
    [False, False, True, True],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False]]],
  ['regression: scenario 5',
   [[['OSR', 'I:0', 'B:11'], ['OSF', 'I:1', 'B:12'], ['OSR', 'I:0', 'B:10'], ['OSR', 'I:0', 'B:13']],
    [{'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': False, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:1': False, 'B:3': False},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': False}]],
   [[False, False, False, False],
    [False, True, False, False],
    [True, False, True, True],
    [False, False, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [True, False, True, True],
    [False, False, False, False],
    [True, True, True, True]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['control: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['regression: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['control: scenario 1',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:1': False},
     {'I:0': False, 'I:1': False}]],
   [[False, False, False],
    [True, True, False],
    [False, False, False],
    [False, False, True],
    [False, True, False],
    [True, False, False],
    [False, False, False],
    [False, False, False]]],
  ['control: scenario 2',
   [[['OSR', 'I:1', 'B:11'], ['OSR', 'I:1', 'B:12'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True}]],
   [[False, False, False, False],
    [False, False, True, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, True, False]]],
  ['regression: scenario 3',
   [[['OSF', 'I:1', 'B:10'], ['OSR', 'I:1', 'B:10'], ['OSF', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:11']],
    [{'I:0': True, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False},
     {'I:0': False, 'B:3': False},
     {'I:1': True, 'B:3': False},
     {'I:0': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'B:3': False}]],
   [[True, False, True, True],
    [False, False, True, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [True, False, False, False],
    [False, False, False, True],
    [True, False, True, False]]]],
 [['regression: scenario 3',
   [[['OSR', 'I:1', 'B:11'], ['OSF', 'I:1', 'B:12']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': True, 'B:3': False},
     {'I:0': True, 'I:1': True, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'I:1': True},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:0': True}]],
   [[False, False],
    [True, False],
    [False, False],
    [False, False],
    [False, True],
    [False, False],
    [True, False],
    [False, False],
    [False, True]]],
  ['regression: scenario 4',
   [[['OSF', 'B:3', 'B:11'], ['OSF', 'I:0', 'B:12'], ['OSF', 'I:0', 'B:13']],
    [{'I:1': True},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': False, 'B:3': False},
     {'I:1': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': True}]],
   [[False, False, False],
    [False, False, False],
    [True, False, False],
    [False, True, True],
    [False, False, False],
    [False, False, False]]],
  ['regression: input on at power-up',
   [[['OSR', 'I:0', 'B:10'], ['OSF', 'I:1', 'B:11']],
    [{'I:0': True}, {'I:0': True}, {'I:0': False}, {'I:0': True, 'I:1': True}, {}]],
   [[False, False], [False, False], [False, False], [True, False], [False, True]]],
  ['control: shared storage',
   [[['OSR', 'I:0', 'B:10'], ['OSR', 'I:1', 'B:10']],
    [{'I:0': True}, {'I:0': False, 'I:1': True}, {'I:1': True}, {}]],
   [[False, False], [False, True], [False, True], [False, False]]],
  ['regression: falling edge train',
   [[['OSF', 'I:0', 'B:12']],
    [{'I:0': True}, {'I:0': False}, {'I:0': False}, {'I:0': True}, {'I:0': False}, {}]],
   [[False], [True], [False], [False], [True], [False]]],
  ['regression: scenario 1',
   [[['OSF', 'I:1', 'B:12'], ['OSR', 'B:3', 'B:11'], ['OSR', 'I:0', 'B:13'], ['OSR', 'I:0', 'B:11']],
    [{'I:0': True, 'I:1': True, 'B:3': True},
     {'I:1': False, 'B:3': True},
     {'I:0': True, 'I:1': True, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': False},
     {'B:3': True}]],
   [[False, False, False, False],
    [True, False, False, False],
    [False, False, True, True],
    [True, False, False, False],
    [False, True, False, False]]],
  ['regression: scenario 2',
   [[['OSF', 'I:0', 'B:13'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10'], ['OSF', 'B:3', 'B:10']],
    [{'I:0': True, 'I:1': False},
     {'B:3': False},
     {'I:1': False},
     {'B:3': True},
     {'I:0': False, 'B:3': False},
     {'I:0': False, 'I:1': False, 'B:3': True},
     {'I:0': True, 'B:3': False},
     {'I:0': False, 'I:1': True, 'B:3': True},
     {'I:1': False, 'B:3': False},
     {'I:0': False, 'B:3': True}]],
   [[False, False, False, False],
    [True, False, False, False],
    [False, False, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [False, False, False, False],
    [False, True, False, False],
    [True, False, False, False],
    [False, True, False, False],
    [False, False, False, False]]],
  ['regression: scenario 5',
   [[['OSR', 'B:3', 'B:12'], ['OSF', 'B:3', 'B:12']],
    [{'I:0': False, 'I:1': False, 'B:3': False},
     {'I:0': False, 'B:3': False},
     {'I:0': True, 'I:1': False, 'B:3': True},
     {'I:0': False, 'B:3': True},
     {'I:1': True, 'B:3': True},
     {'I:0': False, 'I:1': False}]],
   [[False, False], [False, False], [True, False], [False, False], [False, False], [False, False]]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)

prompt:
The falling one-shot output stays on continuously instead of for one scan.

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.

split: open-access