{"abstract":"Cycling control power clears a latched overload trip so the motor can restart without reset.","category":"PLC ladder logic scan cycles","checks":8,"contract":"Three-wire motor starter rung evaluated per scan. Each scan is a dict with optional keys start (pushbutton, default false), stop_nc (normally-closed stop contact: true means not pressed, default true), ol_nc (normally-closed overload contact, default true), reset (default false) and power (default true). An open overload contact latches a trip (retentive); reset clears it only on a scan where the overload contact is closed. The motor runs on start or its own seal-in, and only while stop_nc is closed and no trip is latched; stop and trip dominate start. A power-loss scan drops the motor and requires the start button to be seen released before it can start again. Return [motor, tripped] per scan.","evaluation_group":"w2-plc-ladder-logic-scan-cycles-motor-seal-in","failed_approach":"Clearing the trip on the first powered scan after an outage still bypasses the reset.","family":"w2-plc-ladder-logic-scan-cycles-motor-seal-in-trip-retention-power-loss","id":"FA-92011","implementations":{"attempt":{"sha256":"bf1c8fc77d8af794f313da994068ff3b81a8b306d04161f836f5d62f31a12cdc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(scans):\n    motor = False\n    tripped = False\n    need_release = False\n    out = []\n    for s in scans:\n        if not s.get('power', True):\n            motor = False\n            need_release = True\n            out.append([False, tripped])\n            continue\n        start = s.get('start', False)\n        tripped = tripped and not need_release\n        if not start:\n            need_release = False\n        if not s.get('ol_nc', True):\n            tripped = True\n        elif s.get('reset', False):\n            tripped = False\n        run_cmd = (start and not need_release) or motor\n        motor = run_cmd and s.get('stop_nc', True) and not tripped\n        out.append([motor, tripped])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]],\n  ['regression: scenario 26',\n   [[{'ol_nc': True},\n     {'reset': True},\n     {'ol_nc': False},\n     {'stop_nc': True, 'power': False},\n     {'stop_nc': True},\n     {'start': True, 'ol_nc': True},\n     {'start': False, 'ol_nc': True},\n     {'stop_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'start': False, 'ol_nc': False},\n     {'start': True, 'stop_nc': False, 'ol_nc': True, 'reset': True},\n     {},\n     {'start': False, 'ol_nc': False},\n     {'ol_nc': False}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['control: start after overload recovers',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 2',\n   [[{'stop_nc': True},\n     {'start': True, 'stop_nc': True},\n     {'stop_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'ol_nc': True},\n     {'start': True},\n     {'start': False, 'ol_nc': False},\n     {},\n     {'start': False, 'ol_nc': False},\n     {'stop_nc': False, 'ol_nc': True, 'power': False},\n     {'stop_nc': False, 'reset': True},\n     {'start': True, 'stop_nc': True},\n     {'start': False}]],\n   [[False, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [True, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, False],\n    [True, False],\n    [True, False]]],\n  ['regression: scenario 8',\n   [[{'ol_nc': False},\n     {'start': True},\n     {'start': True, 'ol_nc': True},\n     {},\n     {'start': False},\n     {'start': True},\n     {'power': False},\n     {},\n     {},\n     {'start': True, 'ol_nc': True, 'reset': True, 'power': False}]],\n   [[False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 13',\n   [[{'reset': True},\n     {'ol_nc': False},\n     {'power': False},\n     {'start': True, 'stop_nc': False},\n     {},\n     {},\n     {'stop_nc': False},\n     {'start': True}]],\n   [[False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['regression: scenario 25',\n   [[{'stop_nc': True, 'ol_nc': False},\n     {'start': False, 'ol_nc': True},\n     {'ol_nc': True},\n     {},\n     {'start': False, 'stop_nc': False},\n     {},\n     {'stop_nc': True, 'ol_nc': False, 'reset': True, 'power': False},\n     {'stop_nc': True}]],\n   [[False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 14',\n   [[{'start': False, 'ol_nc': True},\n     {'stop_nc': False},\n     {},\n     {'start': True},\n     {'stop_nc': True},\n     {'start': True},\n     {},\n     {'ol_nc': True, 'reset': True},\n     {'ol_nc': False},\n     {'stop_nc': False, 'ol_nc': False, 'reset': True},\n     {'power': False}]],\n   [[False, False],\n    [False, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['regression: scenario 15',\n   [[{},\n     {},\n     {'ol_nc': False},\n     {'start': True},\n     {'reset': True},\n     {'stop_nc': True},\n     {'stop_nc': False, 'reset': True},\n     {'start': True, 'ol_nc': False, 'reset': True},\n     {'ol_nc': False},\n     {},\n     {'start': False, 'power': False},\n     {},\n     {'start': True, 'stop_nc': False},\n     {'start': True}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 19',\n   [[{'stop_nc': True, 'reset': True},\n     {'start': True, 'stop_nc': False},\n     {'ol_nc': True},\n     {'start': True, 'ol_nc': False},\n     {'stop_nc': True},\n     {'start': True, 'stop_nc': False},\n     {'start': False, 'stop_nc': True, 'reset': True, 'power': False},\n     {'start': False},\n     {'ol_nc': True},\n     {'start': True, 'stop_nc': False},\n     {'start': True, 'power': False}]],\n   [[False, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['regression: scenario 39',\n   [[{'ol_nc': False},\n     {'start': False, 'stop_nc': True},\n     {'start': True},\n     {'start': True},\n     {'start': True, 'stop_nc': False, 'ol_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'start': True, 'stop_nc': True, 'ol_nc': True, 'power': False},\n     {'start': True, 'power': False},\n     {},\n     {'stop_nc': True, 'power': False},\n     {'start': False, 'stop_nc': True, 'ol_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'ol_nc': True}]],\n   [[False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [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":"da00802c6dd259fecc13208374096ff41d7e33021af86e201d8917e38cdad56c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(scans):\n    motor = False\n    tripped = False\n    need_release = False\n    out = []\n    for s in scans:\n        if not s.get('power', True):\n            motor = False\n            need_release = True\n            tripped = False\n            out.append([False, tripped])\n            continue\n        start = s.get('start', False)\n        if not start:\n            need_release = False\n        if not s.get('ol_nc', True):\n            tripped = True\n        elif s.get('reset', False):\n            tripped = False\n        run_cmd = (start and not need_release) or motor\n        motor = run_cmd and s.get('stop_nc', True) and not tripped\n        out.append([motor, tripped])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]],\n  ['regression: scenario 26',\n   [[{'ol_nc': True},\n     {'reset': True},\n     {'ol_nc': False},\n     {'stop_nc': True, 'power': False},\n     {'stop_nc': True},\n     {'start': True, 'ol_nc': True},\n     {'start': False, 'ol_nc': True},\n     {'stop_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'start': False, 'ol_nc': False},\n     {'start': True, 'stop_nc': False, 'ol_nc': True, 'reset': True},\n     {},\n     {'start': False, 'ol_nc': False},\n     {'ol_nc': False}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['control: start after overload recovers',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 2',\n   [[{'stop_nc': True},\n     {'start': True, 'stop_nc': True},\n     {'stop_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'ol_nc': True},\n     {'start': True},\n     {'start': False, 'ol_nc': False},\n     {},\n     {'start': False, 'ol_nc': False},\n     {'stop_nc': False, 'ol_nc': True, 'power': False},\n     {'stop_nc': False, 'reset': True},\n     {'start': True, 'stop_nc': True},\n     {'start': False}]],\n   [[False, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [True, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, False],\n    [True, False],\n    [True, False]]],\n  ['regression: scenario 8',\n   [[{'ol_nc': False},\n     {'start': True},\n     {'start': True, 'ol_nc': True},\n     {},\n     {'start': False},\n     {'start': True},\n     {'power': False},\n     {},\n     {},\n     {'start': True, 'ol_nc': True, 'reset': True, 'power': False}]],\n   [[False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 13',\n   [[{'reset': True},\n     {'ol_nc': False},\n     {'power': False},\n     {'start': True, 'stop_nc': False},\n     {},\n     {},\n     {'stop_nc': False},\n     {'start': True}]],\n   [[False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['regression: scenario 25',\n   [[{'stop_nc': True, 'ol_nc': False},\n     {'start': False, 'ol_nc': True},\n     {'ol_nc': True},\n     {},\n     {'start': False, 'stop_nc': False},\n     {},\n     {'stop_nc': True, 'ol_nc': False, 'reset': True, 'power': False},\n     {'stop_nc': True}]],\n   [[False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 14',\n   [[{'start': False, 'ol_nc': True},\n     {'stop_nc': False},\n     {},\n     {'start': True},\n     {'stop_nc': True},\n     {'start': True},\n     {},\n     {'ol_nc': True, 'reset': True},\n     {'ol_nc': False},\n     {'stop_nc': False, 'ol_nc': False, 'reset': True},\n     {'power': False}]],\n   [[False, False],\n    [False, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['regression: scenario 15',\n   [[{},\n     {},\n     {'ol_nc': False},\n     {'start': True},\n     {'reset': True},\n     {'stop_nc': True},\n     {'stop_nc': False, 'reset': True},\n     {'start': True, 'ol_nc': False, 'reset': True},\n     {'ol_nc': False},\n     {},\n     {'start': False, 'power': False},\n     {},\n     {'start': True, 'stop_nc': False},\n     {'start': True}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 19',\n   [[{'stop_nc': True, 'reset': True},\n     {'start': True, 'stop_nc': False},\n     {'ol_nc': True},\n     {'start': True, 'ol_nc': False},\n     {'stop_nc': True},\n     {'start': True, 'stop_nc': False},\n     {'start': False, 'stop_nc': True, 'reset': True, 'power': False},\n     {'start': False},\n     {'ol_nc': True},\n     {'start': True, 'stop_nc': False},\n     {'start': True, 'power': False}]],\n   [[False, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['regression: scenario 39',\n   [[{'ol_nc': False},\n     {'start': False, 'stop_nc': True},\n     {'start': True},\n     {'start': True},\n     {'start': True, 'stop_nc': False, 'ol_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'start': True, 'stop_nc': True, 'ol_nc': True, 'power': False},\n     {'start': True, 'power': False},\n     {},\n     {'stop_nc': True, 'power': False},\n     {'start': False, 'stop_nc': True, 'ol_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'ol_nc': True}]],\n   [[False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [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":"19905aa7ae44983f017c65d9d0addd81430acc2d0613051e25dcaadb7ce7e784","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(scans):\n    motor = False\n    tripped = False\n    need_release = False\n    out = []\n    for s in scans:\n        if not s.get('power', True):\n            motor = False\n            need_release = True\n            out.append([False, tripped])\n            continue\n        start = s.get('start', False)\n        if not start:\n            need_release = False\n        if not s.get('ol_nc', True):\n            tripped = True\n        elif s.get('reset', False):\n            tripped = False\n        run_cmd = (start and not need_release) or motor\n        motor = run_cmd and s.get('stop_nc', True) and not tripped\n        out.append([motor, tripped])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]],\n  ['regression: scenario 26',\n   [[{'ol_nc': True},\n     {'reset': True},\n     {'ol_nc': False},\n     {'stop_nc': True, 'power': False},\n     {'stop_nc': True},\n     {'start': True, 'ol_nc': True},\n     {'start': False, 'ol_nc': True},\n     {'stop_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'start': False, 'ol_nc': False},\n     {'start': True, 'stop_nc': False, 'ol_nc': True, 'reset': True},\n     {},\n     {'start': False, 'ol_nc': False},\n     {'ol_nc': False}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['control: start after overload recovers',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 2',\n   [[{'stop_nc': True},\n     {'start': True, 'stop_nc': True},\n     {'stop_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'ol_nc': True},\n     {'start': True},\n     {'start': False, 'ol_nc': False},\n     {},\n     {'start': False, 'ol_nc': False},\n     {'stop_nc': False, 'ol_nc': True, 'power': False},\n     {'stop_nc': False, 'reset': True},\n     {'start': True, 'stop_nc': True},\n     {'start': False}]],\n   [[False, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [True, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, False],\n    [True, False],\n    [True, False]]],\n  ['regression: scenario 8',\n   [[{'ol_nc': False},\n     {'start': True},\n     {'start': True, 'ol_nc': True},\n     {},\n     {'start': False},\n     {'start': True},\n     {'power': False},\n     {},\n     {},\n     {'start': True, 'ol_nc': True, 'reset': True, 'power': False}]],\n   [[False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 13',\n   [[{'reset': True},\n     {'ol_nc': False},\n     {'power': False},\n     {'start': True, 'stop_nc': False},\n     {},\n     {},\n     {'stop_nc': False},\n     {'start': True}]],\n   [[False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['regression: scenario 25',\n   [[{'stop_nc': True, 'ol_nc': False},\n     {'start': False, 'ol_nc': True},\n     {'ol_nc': True},\n     {},\n     {'start': False, 'stop_nc': False},\n     {},\n     {'stop_nc': True, 'ol_nc': False, 'reset': True, 'power': False},\n     {'stop_nc': True}]],\n   [[False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 14',\n   [[{'start': False, 'ol_nc': True},\n     {'stop_nc': False},\n     {},\n     {'start': True},\n     {'stop_nc': True},\n     {'start': True},\n     {},\n     {'ol_nc': True, 'reset': True},\n     {'ol_nc': False},\n     {'stop_nc': False, 'ol_nc': False, 'reset': True},\n     {'power': False}]],\n   [[False, False],\n    [False, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['regression: scenario 15',\n   [[{},\n     {},\n     {'ol_nc': False},\n     {'start': True},\n     {'reset': True},\n     {'stop_nc': True},\n     {'stop_nc': False, 'reset': True},\n     {'start': True, 'ol_nc': False, 'reset': True},\n     {'ol_nc': False},\n     {},\n     {'start': False, 'power': False},\n     {},\n     {'start': True, 'stop_nc': False},\n     {'start': True}]],\n   [[False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, True]]]],\n [['regression: scenario 19',\n   [[{'stop_nc': True, 'reset': True},\n     {'start': True, 'stop_nc': False},\n     {'ol_nc': True},\n     {'start': True, 'ol_nc': False},\n     {'stop_nc': True},\n     {'start': True, 'stop_nc': False},\n     {'start': False, 'stop_nc': True, 'reset': True, 'power': False},\n     {'start': False},\n     {'ol_nc': True},\n     {'start': True, 'stop_nc': False},\n     {'start': True, 'power': False}]],\n   [[False, False],\n    [False, False],\n    [False, False],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['regression: scenario 39',\n   [[{'ol_nc': False},\n     {'start': False, 'stop_nc': True},\n     {'start': True},\n     {'start': True},\n     {'start': True, 'stop_nc': False, 'ol_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'start': True, 'stop_nc': True, 'ol_nc': True, 'power': False},\n     {'start': True, 'power': False},\n     {},\n     {'stop_nc': True, 'power': False},\n     {'start': False, 'stop_nc': True, 'ol_nc': True},\n     {'start': False, 'stop_nc': False},\n     {'ol_nc': True}]],\n   [[False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True],\n    [False, True]]],\n  ['control: start seal stop',\n   [[{'start': True}, {}, {'stop_nc': False}, {}, {'start': True}]],\n   [[True, False], [True, False], [False, False], [False, False], [True, False]]],\n  ['control: power loss with start held',\n   [[{'start': True}, {'power': False}, {'start': True}, {}, {'start': True}]],\n   [[True, False], [False, False], [False, False], [False, False], [True, False]]],\n  ['control: overload trip and reset',\n   [[{'start': True}, {'ol_nc': False}, {}, {'start': True}, {'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [False, False], [True, False]]],\n  ['control: reset while overload open',\n   [[{'start': True}, {'ol_nc': False, 'reset': True}, {'start': True}]],\n   [[True, False], [False, True], [False, True]]],\n  ['control: stop and start together',\n   [[{'start': True, 'stop_nc': False}, {'start': True}, {'start': True, 'stop_nc': False}]],\n   [[False, False], [True, False], [False, False]]],\n  ['regression: trip across power loss',\n   [[{'start': True}, {'ol_nc': False}, {'power': False}, {}, {'start': True}]],\n   [[True, False], [False, True], [False, True], [False, True], [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-motor-seal-in-trip-retention-power-loss","generated_at":"2026-09-29T14:51:41.681685+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":"Keep the trip in retentive memory through power loss.","root_cause":"The power-loss path clears the trip memory together with the non-retentive motor coil.","sha256":"9df81f1637a65920e9d4496cc91fb2d2b96e0c7803d3ada7ea17edb83c009cfe","title":"Overload trip is forgotten across a power loss · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.525,"exit_code":1,"observations":[{"actual":[[true,false],[false,true],[false,true],[false,false],[true,false]],"check":"regression: trip across power loss","expected":[[true,false],[false,true],[false,true],[false,true],[false,true]],"passed":false},{"actual":[[false,false],[false,false],[false,true],[false,true],[false,false],[true,false],[true,false],[true,false],[false,false],[false,true],[false,false],[false,false],[false,true],[false,true]],"check":"regression: scenario 26","expected":[[false,false],[false,false],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,false],[false,false],[false,true],[false,true]],"passed":false},{"actual":[[true,false],[true,false],[false,false],[false,false],[true,false]],"check":"control: start seal stop","expected":[[true,false],[true,false],[false,false],[false,false],[true,false]],"passed":true},{"actual":[[true,false],[false,false],[false,false],[false,false],[true,false]],"check":"control: power loss with start held","expected":[[true,false],[false,false],[false,false],[false,false],[true,false]],"passed":true},{"actual":[[true,false],[false,true],[false,true],[false,true],[false,false],[true,false]],"check":"control: overload trip and reset","expected":[[true,false],[false,true],[false,true],[false,true],[false,false],[true,false]],"passed":true},{"actual":[[true,false],[false,true],[false,true]],"check":"control: reset while overload open","expected":[[true,false],[false,true],[false,true]],"passed":true},{"actual":[[false,false],[true,false],[false,false]],"check":"control: stop and start together","expected":[[false,false],[true,false],[false,false]],"passed":true},{"actual":[[true,false],[false,true],[false,true],[false,true],[false,true]],"check":"control: start after overload recovers","expected":[[true,false],[false,true],[false,true],[false,true],[false,true]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trip across power loss\", \"actual\": [[true, false], [false, true], [false, true], [false, false], [true, false]], \"expected\": [[true, false], [false, true], [false, true], [false, true], [false, true]], \"passed\": false}, {\"check\": \"regression: scenario 26\", \"actual\": [[false, false], [false, false], [false, true], [false, true], [false, false], [true, false], [true, false], [true, false], [false, false], [false, true], [false, false], [false, false], [false, true], [false, true]], \"expected\": [[false, false], [false, false], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, false], [false, false], [false, true], [false, true]], \"passed\": false}, {\"check\": \"control: start seal stop\", \"actual\": [[true, false], [true, false], [false, false], [false, false], [true, false]], \"expected\": [[true, false], [true, false], [false, false], [false, false], [true, false]], \"passed\": true}, {\"check\": \"control: power loss with start held\", \"actual\": [[true, false], [false, false], [false, false], [false, false], [true, false]], \"expected\": [[true, false], [false, false], [false, false], [false, false], [true, false]], \"passed\": true}, {\"check\": \"control: overload trip and reset\", \"actual\": [[true, false], [false, true], [false, true], [false, true], [false, false], [true, false]], \"expected\": [[true, false], [false, true], [false, true], [false, true], [false, false], [true, false]], \"passed\": true}, {\"check\": \"control: reset while overload open\", \"actual\": [[true, false], [false, true], [false, true]], \"expected\": [[true, false], [false, true], [false, true]], \"passed\": true}, {\"check\": \"control: stop and start together\", \"actual\": [[false, false], [true, false], [false, false]], \"expected\": [[false, false], [true, false], [false, false]], \"passed\": true}, {\"check\": \"control: start after overload recovers\", \"actual\": [[true, false], [false, true], [false, true], [false, true], [false, true]], \"expected\": [[true, false], [false, true], [false, true], [false, true], [false, true]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.12,"exit_code":1,"observations":[{"actual":[[true,false],[false,true],[false,false],[false,false],[true,false]],"check":"regression: trip across power loss","expected":[[true,false],[false,true],[false,true],[false,true],[false,true]],"passed":false},{"actual":[[false,false],[false,false],[false,true],[false,false],[false,false],[true,false],[true,false],[true,false],[false,false],[false,true],[false,false],[false,false],[false,true],[false,true]],"check":"regression: scenario 26","expected":[[false,false],[false,false],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,false],[false,false],[false,true],[false,true]],"passed":false},{"actual":[[true,false],[true,false],[false,false],[false,false],[true,false]],"check":"control: start seal stop","expected":[[true,false],[true,false],[false,false],[false,false],[true,false]],"passed":true},{"actual":[[true,false],[false,false],[false,false],[false,false],[true,false]],"check":"control: power loss with start held","expected":[[true,false],[false,false],[false,false],[false,false],[true,false]],"passed":true},{"actual":[[true,false],[false,true],[false,true],[false,true],[false,false],[true,false]],"check":"control: overload trip and reset","expected":[[true,false],[false,true],[false,true],[false,true],[false,false],[true,false]],"passed":true},{"actual":[[true,false],[false,true],[false,true]],"check":"control: reset while overload open","expected":[[true,false],[false,true],[false,true]],"passed":true},{"actual":[[false,false],[true,false],[false,false]],"check":"control: stop and start together","expected":[[false,false],[true,false],[false,false]],"passed":true},{"actual":[[true,false],[false,true],[false,true],[false,true],[false,true]],"check":"control: start after overload recovers","expected":[[true,false],[false,true],[false,true],[false,true],[false,true]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trip across power loss\", \"actual\": [[true, false], [false, true], [false, false], [false, false], [true, false]], \"expected\": [[true, false], [false, true], [false, true], [false, true], [false, true]], \"passed\": false}, {\"check\": \"regression: scenario 26\", \"actual\": [[false, false], [false, false], [false, true], [false, false], [false, false], [true, false], [true, false], [true, false], [false, false], [false, true], [false, false], [false, false], [false, true], [false, true]], \"expected\": [[false, false], [false, false], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, false], [false, false], [false, true], [false, true]], \"passed\": false}, {\"check\": \"control: start seal stop\", \"actual\": [[true, false], [true, false], [false, false], [false, false], [true, false]], \"expected\": [[true, false], [true, false], [false, false], [false, false], [true, false]], \"passed\": true}, {\"check\": \"control: power loss with start held\", \"actual\": [[true, false], [false, false], [false, false], [false, false], [true, false]], \"expected\": [[true, false], [false, false], [false, false], [false, false], [true, false]], \"passed\": true}, {\"check\": \"control: overload trip and reset\", \"actual\": [[true, false], [false, true], [false, true], [false, true], [false, false], [true, false]], \"expected\": [[true, false], [false, true], [false, true], [false, true], [false, false], [true, false]], \"passed\": true}, {\"check\": \"control: reset while overload open\", \"actual\": [[true, false], [false, true], [false, true]], \"expected\": [[true, false], [false, true], [false, true]], \"passed\": true}, {\"check\": \"control: stop and start together\", \"actual\": [[false, false], [true, false], [false, false]], \"expected\": [[false, false], [true, false], [false, false]], \"passed\": true}, {\"check\": \"control: start after overload recovers\", \"actual\": [[true, false], [false, true], [false, true], [false, true], [false, true]], \"expected\": [[true, false], [false, true], [false, true], [false, true], [false, true]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.343,"exit_code":0,"observations":[{"actual":[[true,false],[false,true],[false,true],[false,true],[false,true]],"check":"regression: trip across power loss","expected":[[true,false],[false,true],[false,true],[false,true],[false,true]],"passed":true},{"actual":[[false,false],[false,false],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,false],[false,false],[false,true],[false,true]],"check":"regression: scenario 26","expected":[[false,false],[false,false],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,true],[false,false],[false,false],[false,true],[false,true]],"passed":true},{"actual":[[true,false],[true,false],[false,false],[false,false],[true,false]],"check":"control: start seal stop","expected":[[true,false],[true,false],[false,false],[false,false],[true,false]],"passed":true},{"actual":[[true,false],[false,false],[false,false],[false,false],[true,false]],"check":"control: power loss with start held","expected":[[true,false],[false,false],[false,false],[false,false],[true,false]],"passed":true},{"actual":[[true,false],[false,true],[false,true],[false,true],[false,false],[true,false]],"check":"control: overload trip and reset","expected":[[true,false],[false,true],[false,true],[false,true],[false,false],[true,false]],"passed":true},{"actual":[[true,false],[false,true],[false,true]],"check":"control: reset while overload open","expected":[[true,false],[false,true],[false,true]],"passed":true},{"actual":[[false,false],[true,false],[false,false]],"check":"control: stop and start together","expected":[[false,false],[true,false],[false,false]],"passed":true},{"actual":[[true,false],[false,true],[false,true],[false,true],[false,true]],"check":"control: start after overload recovers","expected":[[true,false],[false,true],[false,true],[false,true],[false,true]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trip across power loss\", \"actual\": [[true, false], [false, true], [false, true], [false, true], [false, true]], \"expected\": [[true, false], [false, true], [false, true], [false, true], [false, true]], \"passed\": true}, {\"check\": \"regression: scenario 26\", \"actual\": [[false, false], [false, false], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, false], [false, false], [false, true], [false, true]], \"expected\": [[false, false], [false, false], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, true], [false, false], [false, false], [false, true], [false, true]], \"passed\": true}, {\"check\": \"control: start seal stop\", \"actual\": [[true, false], [true, false], [false, false], [false, false], [true, false]], \"expected\": [[true, false], [true, false], [false, false], [false, false], [true, false]], \"passed\": true}, {\"check\": \"control: power loss with start held\", \"actual\": [[true, false], [false, false], [false, false], [false, false], [true, false]], \"expected\": [[true, false], [false, false], [false, false], [false, false], [true, false]], \"passed\": true}, {\"check\": \"control: overload trip and reset\", \"actual\": [[true, false], [false, true], [false, true], [false, true], [false, false], [true, false]], \"expected\": [[true, false], [false, true], [false, true], [false, true], [false, false], [true, false]], \"passed\": true}, {\"check\": \"control: reset while overload open\", \"actual\": [[true, false], [false, true], [false, true]], \"expected\": [[true, false], [false, true], [false, true]], \"passed\": true}, {\"check\": \"control: stop and start together\", \"actual\": [[false, false], [true, false], [false, false]], \"expected\": [[false, false], [true, false], [false, false]], \"passed\": true}, {\"check\": \"control: start after overload recovers\", \"actual\": [[true, false], [false, true], [false, true], [false, true], [false, true]], \"expected\": [[true, false], [false, true], [false, true], [false, true], [false, true]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}