{"abstract":"All units on a feeder start together after an outage because the power-up delay is skipped.","category":"HVAC thermostat control","checks":8,"contract":"Compressor protection sampled per minute; calls is a list of [demand, safety_ok]. After power-up the compressor may not start before minute startup_delay. Once started it runs at least min_on minutes even if demand ends; after stopping it stays off at least min_off minutes. A safety fault stops it immediately regardless of minimum on time, and that stop also starts the minimum off time; it cannot start while the safety is faulted. Return the compressor state per minute.","evaluation_group":"w2-hvac-thermostat-control-compressor-anti-short-cycle","failed_approach":"Using a strict comparison delays the first start by an extra minute.","family":"w2-hvac-thermostat-control-compressor-anti-short-cycle-startup-delay","id":"FA-92406","implementations":{"attempt":{"sha256":"50bf5b7e6a31a09fa989a69fe6492ff654ad70577c8655b432acdbefcfeb6941","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(min_on, min_off, startup_delay, calls):\n    running = False\n    on_at = None\n    off_at = None\n    out = []\n    for minute, (demand, safety_ok) in enumerate(calls):\n        if running:\n            if not safety_ok:\n                running = False\n                off_at = minute\n            elif not demand and minute - on_at >= min_on:\n                running = False\n                off_at = minute\n        elif demand and safety_ok and minute > startup_delay:\n            if off_at is None or minute - off_at >= min_off:\n                running = True\n                on_at = minute\n        out.append(running)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['control: scenario 1',\n   [3,\n    3,\n    4,\n    [[False, False],\n     [False, True],\n     [False, True],\n     [False, False],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['regression: scenario 2',\n   [5,\n    3,\n    0,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True]]],\n   [True, True, True, False, False, False, True, True, False, False, False, False, False, True]],\n  ['regression: scenario 3',\n   [3,\n    4,\n    0,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [True, True, True, True, False, False, False, False, True, False, False]],\n  ['regression: scenario 4',\n   [5,\n    5,\n    4,\n    [[True, 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     [False, False],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [False, False, False, False, False, False, False, False, False, False, False, False, False]]],\n [['regression: scenario 2',\n   [2,\n    5,\n    4,\n    [[False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, False],\n     [False, True],\n     [False, True]]],\n   [False, False, False, False, False, True, True, True, False, False, False, False, False, False]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['control: scenario 1',\n   [5,\n    3,\n    0,\n    [[False, True],\n     [False, True],\n     [False, True],\n     [False, False],\n     [False, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [False, False, False, False, False, True, True, True, True, True, True, True]],\n  ['regression: scenario 3',\n   [3,\n    4,\n    0,\n    [[True, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [True, True],\n     [False, True],\n     [False, True]]],\n   [True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True]],\n  ['regression: scenario 4',\n   [2,\n    4,\n    2,\n    [[True, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, False],\n     [True, False]]],\n   [False, False, True, True, True, True, True, False, False, False, False, False, False, False, False]]],\n [['regression: scenario 4',\n   [5,\n    5,\n    4,\n    [[True, 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     [True, False],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['regression: scenario 1',\n   [2,\n    5,\n    2,\n    [[True, False],\n     [True, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, False],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False]],\n  ['control: scenario 2',\n   [2,\n    4,\n    0,\n    [[False, True],\n     [True, True],\n     [True, 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     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['control: scenario 3',\n   [2,\n    5,\n    0,\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     [True, False],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True]]],\n [['regression: scenario 7',\n   [2,\n    3,\n    2,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [False, False],\n     [False, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['control: scenario 1',\n   [5,\n    4,\n    2,\n    [[False, True],\n     [False, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False]],\n  ['regression: scenario 2',\n   [2,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, False]]],\n   [False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['control: scenario 3',\n   [2,\n    3,\n    0,\n    [[False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True]]],\n [['regression: scenario 7',\n   [3,\n    5,\n    4,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False]],\n  ['regression: scenario 2',\n   [2,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True]]],\n   [False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['control: scenario 1',\n   [3,\n    4,\n    0,\n    [[False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, False],\n     [False, True]]],\n   [False, False, False, False, True, True, True, False, False, False, False]],\n  ['regression: scenario 3',\n   [2,\n    5,\n    0,\n    [[True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [True, True, False, False, False, False, False, False, True, True, False, False]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"1392009541a92a9857983afe40da34bddc3b80bf05a81947fdf2ddef1b80afde","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(min_on, min_off, startup_delay, calls):\n    running = False\n    on_at = None\n    off_at = None\n    out = []\n    for minute, (demand, safety_ok) in enumerate(calls):\n        if running:\n            if not safety_ok:\n                running = False\n                off_at = minute\n            elif not demand and minute - on_at >= min_on:\n                running = False\n                off_at = minute\n        elif demand and safety_ok:\n            if off_at is None or minute - off_at >= min_off:\n                running = True\n                on_at = minute\n        out.append(running)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['control: scenario 1',\n   [3,\n    3,\n    4,\n    [[False, False],\n     [False, True],\n     [False, True],\n     [False, False],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['regression: scenario 2',\n   [5,\n    3,\n    0,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True]]],\n   [True, True, True, False, False, False, True, True, False, False, False, False, False, True]],\n  ['regression: scenario 3',\n   [3,\n    4,\n    0,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [True, True, True, True, False, False, False, False, True, False, False]],\n  ['regression: scenario 4',\n   [5,\n    5,\n    4,\n    [[True, 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     [False, False],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [False, False, False, False, False, False, False, False, False, False, False, False, False]]],\n [['regression: scenario 2',\n   [2,\n    5,\n    4,\n    [[False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, False],\n     [False, True],\n     [False, True]]],\n   [False, False, False, False, False, True, True, True, False, False, False, False, False, False]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['control: scenario 1',\n   [5,\n    3,\n    0,\n    [[False, True],\n     [False, True],\n     [False, True],\n     [False, False],\n     [False, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [False, False, False, False, False, True, True, True, True, True, True, True]],\n  ['regression: scenario 3',\n   [3,\n    4,\n    0,\n    [[True, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [True, True],\n     [False, True],\n     [False, True]]],\n   [True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True]],\n  ['regression: scenario 4',\n   [2,\n    4,\n    2,\n    [[True, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, False],\n     [True, False]]],\n   [False, False, True, True, True, True, True, False, False, False, False, False, False, False, False]]],\n [['regression: scenario 4',\n   [5,\n    5,\n    4,\n    [[True, 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     [True, False],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['regression: scenario 1',\n   [2,\n    5,\n    2,\n    [[True, False],\n     [True, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, False],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False]],\n  ['control: scenario 2',\n   [2,\n    4,\n    0,\n    [[False, True],\n     [True, True],\n     [True, 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     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['control: scenario 3',\n   [2,\n    5,\n    0,\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     [True, False],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True]]],\n [['regression: scenario 7',\n   [2,\n    3,\n    2,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [False, False],\n     [False, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['control: scenario 1',\n   [5,\n    4,\n    2,\n    [[False, True],\n     [False, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False]],\n  ['regression: scenario 2',\n   [2,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, False]]],\n   [False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['control: scenario 3',\n   [2,\n    3,\n    0,\n    [[False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True]]],\n [['regression: scenario 7',\n   [3,\n    5,\n    4,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False]],\n  ['regression: scenario 2',\n   [2,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True]]],\n   [False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['control: scenario 1',\n   [3,\n    4,\n    0,\n    [[False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, False],\n     [False, True]]],\n   [False, False, False, False, True, True, True, False, False, False, False]],\n  ['regression: scenario 3',\n   [2,\n    5,\n    0,\n    [[True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [True, True, False, False, False, False, False, False, True, True, False, False]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"ff7c80ed3aa874eacad678bfd4b39decb46b14d47e3a12bd1478842f5c89584d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(min_on, min_off, startup_delay, calls):\n    running = False\n    on_at = None\n    off_at = None\n    out = []\n    for minute, (demand, safety_ok) in enumerate(calls):\n        if running:\n            if not safety_ok:\n                running = False\n                off_at = minute\n            elif not demand and minute - on_at >= min_on:\n                running = False\n                off_at = minute\n        elif demand and safety_ok and minute >= startup_delay:\n            if off_at is None or minute - off_at >= min_off:\n                running = True\n                on_at = minute\n        out.append(running)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['control: scenario 1',\n   [3,\n    3,\n    4,\n    [[False, False],\n     [False, True],\n     [False, True],\n     [False, False],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['regression: scenario 2',\n   [5,\n    3,\n    0,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True]]],\n   [True, True, True, False, False, False, True, True, False, False, False, False, False, True]],\n  ['regression: scenario 3',\n   [3,\n    4,\n    0,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [True, True, True, True, False, False, False, False, True, False, False]],\n  ['regression: scenario 4',\n   [5,\n    5,\n    4,\n    [[True, 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     [False, False],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [False, False, False, False, False, False, False, False, False, False, False, False, False]]],\n [['regression: scenario 2',\n   [2,\n    5,\n    4,\n    [[False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, False],\n     [False, True],\n     [False, True]]],\n   [False, False, False, False, False, True, True, True, False, False, False, False, False, False]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['control: scenario 1',\n   [5,\n    3,\n    0,\n    [[False, True],\n     [False, True],\n     [False, True],\n     [False, False],\n     [False, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [False, False, False, False, False, True, True, True, True, True, True, True]],\n  ['regression: scenario 3',\n   [3,\n    4,\n    0,\n    [[True, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [True, True],\n     [False, True],\n     [False, True]]],\n   [True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True]],\n  ['regression: scenario 4',\n   [2,\n    4,\n    2,\n    [[True, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, False],\n     [True, False]]],\n   [False, False, True, True, True, True, True, False, False, False, False, False, False, False, False]]],\n [['regression: scenario 4',\n   [5,\n    5,\n    4,\n    [[True, 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     [True, False],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['regression: scenario 1',\n   [2,\n    5,\n    2,\n    [[True, False],\n     [True, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, False],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False]],\n  ['control: scenario 2',\n   [2,\n    4,\n    0,\n    [[False, True],\n     [True, True],\n     [True, 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     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['control: scenario 3',\n   [2,\n    5,\n    0,\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     [True, False],\n     [True, True],\n     [True, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True]]],\n [['regression: scenario 7',\n   [2,\n    3,\n    2,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [False, False],\n     [False, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['control: scenario 1',\n   [5,\n    4,\n    2,\n    [[False, True],\n     [False, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True]]],\n   [False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False]],\n  ['regression: scenario 2',\n   [2,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, False],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, False]]],\n   [False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False]],\n  ['control: scenario 3',\n   [2,\n    3,\n    0,\n    [[False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, False],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    True,\n    True,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True]]],\n [['regression: scenario 7',\n   [3,\n    5,\n    4,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    False,\n    False,\n    True,\n    False,\n    False]],\n  ['regression: scenario 2',\n   [2,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True]]],\n   [False,\n    False,\n    True,\n    True,\n    True,\n    False,\n    False,\n    False,\n    False,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    True,\n    False]],\n  ['regression: min on and off',\n   [3,\n    4,\n    2,\n    [[True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, False],\n     [True, True]]],\n   [False, False, True, True, True, False, False, False, False, False, True]],\n  ['regression: safety during min on',\n   [5,\n    3,\n    0,\n    [[True, True], [False, True], [False, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, True, True]],\n  ['regression: safety then quick recall',\n   [2,\n    4,\n    0,\n    [[True, True], [True, True], [True, False], [True, True], [True, True], [True, True], [True, True]]],\n   [True, True, False, False, False, False, True]],\n  ['regression: exact min on',\n   [2,\n    3,\n    0,\n    [[True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [True, True],\n     [True, True]]],\n   [True, True, False, False, False, True, True, False, False, False, True, True]],\n  ['control: scenario 1',\n   [3,\n    4,\n    0,\n    [[False, True],\n     [False, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, False],\n     [False, False],\n     [False, True]]],\n   [False, False, False, False, True, True, True, False, False, False, False]],\n  ['regression: scenario 3',\n   [2,\n    5,\n    0,\n    [[True, True],\n     [True, True],\n     [True, False],\n     [False, True],\n     [True, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [True, True],\n     [False, True],\n     [False, True],\n     [False, True]]],\n   [True, True, False, False, False, False, False, False, True, True, False, False]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic bounded teaching model of one thermostat or HVAC controller decision evaluated per sample. Temperatures are integer tenths of a degree Fahrenheit unless stated otherwise. The contract is a stipulated toy convention, not a claim of conformance to any manufacturer, ASHRAE guideline or code. 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-hvac-thermostat-control-compressor-anti-short-cycle-startup-delay","generated_at":"2026-09-29T14:51:45.345074+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Residential and light-commercial thermostats make these decisions sample by sample; each defect changes equipment calls in a way that shows up as short cycling, comfort complaints or equipment stress.","repair":"Do not start before minute startup_delay.","root_cause":"The start condition does not check the power-up delay.","sha256":"f13000bc571e05d9e960bf90682610efd008318f38beea611d089cb7587569a2","title":"Compressor starts immediately after power is restored · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.76,"exit_code":1,"observations":[{"actual":[false,false,false,false,false,false,true,true,true,false,false],"check":"regression: min on and off","expected":[false,false,true,true,true,false,false,false,false,false,true],"passed":false},{"actual":[false,false,false,true,true,true,true],"check":"regression: safety during min on","expected":[true,true,false,false,false,true,true],"passed":false},{"actual":[false,true,false,false,false,false,true],"check":"regression: safety then quick recall","expected":[true,true,false,false,false,false,true],"passed":false},{"actual":[false,false,false,true,true,true,true,false,false,false,true,true],"check":"regression: exact min on","expected":[true,true,false,false,false,true,true,false,false,false,true,true],"passed":false},{"actual":[false,false,false,false,false,true,true,true,true,true,false,false,false,false,true,true,false,false,false,false,false,false],"check":"control: scenario 1","expected":[false,false,false,false,false,true,true,true,true,true,false,false,false,false,true,true,false,false,false,false,false,false],"passed":true},{"actual":[false,true,true,false,false,false,true,true,false,false,false,false,false,true],"check":"regression: scenario 2","expected":[true,true,true,false,false,false,true,true,false,false,false,false,false,true],"passed":false},{"actual":[false,true,true,true,false,false,false,false,true,false,false],"check":"regression: scenario 3","expected":[true,true,true,true,false,false,false,false,true,false,false],"passed":false},{"actual":[false,false,false,false,false,false,false,false,false,false,false,false,false],"check":"regression: scenario 4","expected":[false,false,false,false,false,false,false,false,false,false,false,false,false],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: min on and off\", \"actual\": [false, false, false, false, false, false, true, true, true, false, false], \"expected\": [false, false, true, true, true, false, false, false, false, false, true], \"passed\": false}, {\"check\": \"regression: safety during min on\", \"actual\": [false, false, false, true, true, true, true], \"expected\": [true, true, false, false, false, true, true], \"passed\": false}, {\"check\": \"regression: safety then quick recall\", \"actual\": [false, true, false, false, false, false, true], \"expected\": [true, true, false, false, false, false, true], \"passed\": false}, {\"check\": \"regression: exact min on\", \"actual\": [false, false, false, true, true, true, true, false, false, false, true, true], \"expected\": [true, true, false, false, false, true, true, false, false, false, true, true], \"passed\": false}, {\"check\": \"control: scenario 1\", \"actual\": [false, false, false, false, false, true, true, true, true, true, false, false, false, false, true, true, false, false, false, false, false, false], \"expected\": [false, false, false, false, false, true, true, true, true, true, false, false, false, false, true, true, false, false, false, false, false, false], \"passed\": true}, {\"check\": \"regression: scenario 2\", \"actual\": [false, true, true, false, false, false, true, true, false, false, false, false, false, true], \"expected\": [true, true, true, false, false, false, true, true, false, false, false, false, false, true], \"passed\": false}, {\"check\": \"regression: scenario 3\", \"actual\": [false, true, true, true, false, false, false, false, true, false, false], \"expected\": [true, true, true, true, false, false, false, false, true, false, false], \"passed\": false}, {\"check\": \"regression: scenario 4\", \"actual\": [false, false, false, false, false, false, false, false, false, false, false, false, false], \"expected\": [false, false, false, false, false, false, false, false, false, false, false, false, false], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.232,"exit_code":1,"observations":[{"actual":[true,true,true,false,false,false,false,true,true,false,false],"check":"regression: min on and off","expected":[false,false,true,true,true,false,false,false,false,false,true],"passed":false},{"actual":[true,true,false,false,false,true,true],"check":"regression: safety during min on","expected":[true,true,false,false,false,true,true],"passed":true},{"actual":[true,true,false,false,false,false,true],"check":"regression: safety then quick recall","expected":[true,true,false,false,false,false,true],"passed":true},{"actual":[true,true,false,false,false,true,true,false,false,false,true,true],"check":"regression: exact min on","expected":[true,true,false,false,false,true,true,false,false,false,true,true],"passed":true},{"actual":[false,false,false,false,false,true,true,true,true,true,false,false,false,false,true,true,false,false,false,false,false,false],"check":"control: scenario 1","expected":[false,false,false,false,false,true,true,true,true,true,false,false,false,false,true,true,false,false,false,false,false,false],"passed":true},{"actual":[true,true,true,false,false,false,true,true,false,false,false,false,false,true],"check":"regression: scenario 2","expected":[true,true,true,false,false,false,true,true,false,false,false,false,false,true],"passed":true},{"actual":[true,true,true,true,false,false,false,false,true,false,false],"check":"regression: scenario 3","expected":[true,true,true,true,false,false,false,false,true,false,false],"passed":true},{"actual":[true,false,false,false,false,false,false,false,false,false,false,false,false],"check":"regression: scenario 4","expected":[false,false,false,false,false,false,false,false,false,false,false,false,false],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: min on and off\", \"actual\": [true, true, true, false, false, false, false, true, true, false, false], \"expected\": [false, false, true, true, true, false, false, false, false, false, true], \"passed\": false}, {\"check\": \"regression: safety during min on\", \"actual\": [true, true, false, false, false, true, true], \"expected\": [true, true, false, false, false, true, true], \"passed\": true}, {\"check\": \"regression: safety then quick recall\", \"actual\": [true, true, false, false, false, false, true], \"expected\": [true, true, false, false, false, false, true], \"passed\": true}, {\"check\": \"regression: exact min on\", \"actual\": [true, true, false, false, false, true, true, false, false, false, true, true], \"expected\": [true, true, false, false, false, true, true, false, false, false, true, true], \"passed\": true}, {\"check\": \"control: scenario 1\", \"actual\": [false, false, false, false, false, true, true, true, true, true, false, false, false, false, true, true, false, false, false, false, false, false], \"expected\": [false, false, false, false, false, true, true, true, true, true, false, false, false, false, true, true, false, false, false, false, false, false], \"passed\": true}, {\"check\": \"regression: scenario 2\", \"actual\": [true, true, true, false, false, false, true, true, false, false, false, false, false, true], \"expected\": [true, true, true, false, false, false, true, true, false, false, false, false, false, true], \"passed\": true}, {\"check\": \"regression: scenario 3\", \"actual\": [true, true, true, true, false, false, false, false, true, false, false], \"expected\": [true, true, true, true, false, false, false, false, true, false, false], \"passed\": true}, {\"check\": \"regression: scenario 4\", \"actual\": [true, false, false, false, false, false, false, false, false, false, false, false, false], \"expected\": [false, false, false, false, false, false, false, false, false, false, false, false, false], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.437,"exit_code":0,"observations":[{"actual":[false,false,true,true,true,false,false,false,false,false,true],"check":"regression: min on and off","expected":[false,false,true,true,true,false,false,false,false,false,true],"passed":true},{"actual":[true,true,false,false,false,true,true],"check":"regression: safety during min on","expected":[true,true,false,false,false,true,true],"passed":true},{"actual":[true,true,false,false,false,false,true],"check":"regression: safety then quick recall","expected":[true,true,false,false,false,false,true],"passed":true},{"actual":[true,true,false,false,false,true,true,false,false,false,true,true],"check":"regression: exact min on","expected":[true,true,false,false,false,true,true,false,false,false,true,true],"passed":true},{"actual":[false,false,false,false,false,true,true,true,true,true,false,false,false,false,true,true,false,false,false,false,false,false],"check":"control: scenario 1","expected":[false,false,false,false,false,true,true,true,true,true,false,false,false,false,true,true,false,false,false,false,false,false],"passed":true},{"actual":[true,true,true,false,false,false,true,true,false,false,false,false,false,true],"check":"regression: scenario 2","expected":[true,true,true,false,false,false,true,true,false,false,false,false,false,true],"passed":true},{"actual":[true,true,true,true,false,false,false,false,true,false,false],"check":"regression: scenario 3","expected":[true,true,true,true,false,false,false,false,true,false,false],"passed":true},{"actual":[false,false,false,false,false,false,false,false,false,false,false,false,false],"check":"regression: scenario 4","expected":[false,false,false,false,false,false,false,false,false,false,false,false,false],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: min on and off\", \"actual\": [false, false, true, true, true, false, false, false, false, false, true], \"expected\": [false, false, true, true, true, false, false, false, false, false, true], \"passed\": true}, {\"check\": \"regression: safety during min on\", \"actual\": [true, true, false, false, false, true, true], \"expected\": [true, true, false, false, false, true, true], \"passed\": true}, {\"check\": \"regression: safety then quick recall\", \"actual\": [true, true, false, false, false, false, true], \"expected\": [true, true, false, false, false, false, true], \"passed\": true}, {\"check\": \"regression: exact min on\", \"actual\": [true, true, false, false, false, true, true, false, false, false, true, true], \"expected\": [true, true, false, false, false, true, true, false, false, false, true, true], \"passed\": true}, {\"check\": \"control: scenario 1\", \"actual\": [false, false, false, false, false, true, true, true, true, true, false, false, false, false, true, true, false, false, false, false, false, false], \"expected\": [false, false, false, false, false, true, true, true, true, true, false, false, false, false, true, true, false, false, false, false, false, false], \"passed\": true}, {\"check\": \"regression: scenario 2\", \"actual\": [true, true, true, false, false, false, true, true, false, false, false, false, false, true], \"expected\": [true, true, true, false, false, false, true, true, false, false, false, false, false, true], \"passed\": true}, {\"check\": \"regression: scenario 3\", \"actual\": [true, true, true, true, false, false, false, false, true, false, false], \"expected\": [true, true, true, true, false, false, false, false, true, false, false], \"passed\": true}, {\"check\": \"regression: scenario 4\", \"actual\": [false, false, false, false, false, false, false, false, false, false, false, false, false], \"expected\": [false, false, false, false, false, false, false, false, false, false, false, false, false], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}