{"abstract":"High fire runs all the way to setpoint and the room overshoots on every recovery.","category":"HVAC thermostat control","checks":8,"contract":"Two-stage furnace thermostat sampled per minute. Stage 1 starts at temp <= setpoint - 1.0 F and ends at temp >= setpoint. Stage 2 requires stage 1 and starts either on droop (temp <= setpoint - 3.0 F) or after stage 1 has been on for more than 10 samples of the current cycle while still below setpoint - 0.5 F; it ends at temp >= setpoint - 0.3 F or when stage 1 ends, and cannot restart within 3 minutes of ending. Return [stage1, stage2] per minute.","contract_signature":"setpoint, temps","evaluation_group":"w2-hvac-thermostat-control-two-stage-heat-upstage","failed_approach":"Using a strict comparison keeps stage 2 on for one extra sample at the threshold.","family":"w2-hvac-thermostat-control-two-stage-heat-upstage-stage2-exit","id":"FA-92376","implementations":{"attempt":{"sha256":"ad3297915f3b900717926cd175c39e61c909923db018cbadc6e41756d2fd422e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(setpoint, temps):\n    s1 = False\n    s2 = False\n    run1 = 0\n    s2_off = None\n    out = []\n    for minute, temp in enumerate(temps):\n        if s1 and temp >= setpoint:\n            s1 = False\n        elif not s1 and temp <= setpoint - 10:\n            s1 = True\n            run1 = 0\n        if s1:\n            run1 += 1\n        if s2 and (temp > setpoint - 3 or not s1):\n            s2 = False\n            s2_off = minute\n        elif not s2 and s1 and (temp <= setpoint - 30 or (run1 > 10 and temp < setpoint - 5)):\n            if s2_off is None or minute - s2_off >= 3:\n                s2 = True\n        out.append([s1, s2])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: stage two cycling',\n   [700, [665, 698, 668, 668, 668, 668, 699, 700]],\n   [[True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False]]],\n  ['regression: scenario 7',\n   [700,\n    [680,\n     679,\n     676,\n     682,\n     683,\n     680,\n     688,\n     686,\n     692,\n     688,\n     692,\n     697,\n     696,\n     688,\n     693,\n     697,\n     702,\n     696,\n     703,\n     699,\n     706,\n     703,\n     703,\n     696]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False]]],\n  ['control: slow recovery upstages on time',\n   [700, [690, 691, 692, 692, 693, 693, 694, 694, 694, 694, 694, 694, 695, 696, 700]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [False, False]]],\n  ['control: second cycle after short first',\n   [700, [690, 692, 694, 696, 698, 700, 690, 692, 694, 694, 694, 694, 694, 694, 694, 694, 694]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True]]],\n  ['control: droop recovery above upstage exit',\n   [700, [665, 675, 685, 693, 696, 700]],\n   [[True, True], [True, True], [True, True], [True, True], [True, True], [False, False]]],\n  ['regression: stage two cycling late',\n   [700, [669, 698, 669, 669, 666, 669, 669]],\n   [[True, True], [True, False], [True, False], [True, False], [True, True], [True, True], [True, True]]],\n  ['control: scenario 1',\n   [700,\n    [668,\n     676,\n     684,\n     689,\n     688,\n     685,\n     691,\n     686,\n     690,\n     688,\n     696,\n     688,\n     691,\n     693,\n     690,\n     693,\n     693,\n     686,\n     679,\n     685,\n     678,\n     682,\n     677,\n     685,\n     679,\n     675,\n     682,\n     688,\n     696]],\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    [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    [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  ['control: scenario 2',\n   [700, [650, 652, 648, 644, 640, 637, 645, 650, 657, 654, 651, 644, 643, 651, 645, 643, 635]],\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    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True]]]],\n [['regression: stage two cycling late',\n   [700, [669, 698, 669, 669, 666, 669, 669]],\n   [[True, True], [True, False], [True, False], [True, False], [True, True], [True, True], [True, True]]],\n  ['regression: scenario 36',\n   [700,\n    [661,\n     668,\n     666,\n     671,\n     674,\n     671,\n     678,\n     679,\n     687,\n     691,\n     697,\n     692,\n     693,\n     692,\n     687,\n     684,\n     688,\n     688,\n     689,\n     697,\n     694,\n     689,\n     681,\n     686,\n     678,\n     683,\n     685,\n     686,\n     689]],\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    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [True, False],\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  ['control: slow recovery upstages on time',\n   [700, [690, 691, 692, 692, 693, 693, 694, 694, 694, 694, 694, 694, 695, 696, 700]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [False, False]]],\n  ['control: second cycle after short first',\n   [700, [690, 692, 694, 696, 698, 700, 690, 692, 694, 694, 694, 694, 694, 694, 694, 694, 694]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True]]],\n  ['control: droop recovery above upstage exit',\n   [700, [665, 675, 685, 693, 696, 700]],\n   [[True, True], [True, True], [True, True], [True, True], [True, True], [False, False]]],\n  ['regression: stage two cycling',\n   [700, [665, 698, 668, 668, 668, 668, 699, 700]],\n   [[True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False]]],\n  ['control: scenario 1',\n   [700,\n    [664,\n     664,\n     656,\n     661,\n     657,\n     652,\n     647,\n     647,\n     642,\n     647,\n     646,\n     644,\n     642,\n     634,\n     634,\n     637,\n     640,\n     644,\n     650,\n     643,\n     640,\n     640]],\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    [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    [True, True],\n    [True, True]]],\n  ['control: scenario 2',\n   [700, [678, 683, 689, 697, 705, 705, 710, 705, 704, 709, 701, 709, 710, 710, 704, 696, 702, 705, 709]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False]]]],\n [['regression: scenario 5',\n   [700,\n    [686,\n     687,\n     692,\n     699,\n     698,\n     690,\n     685,\n     690,\n     684,\n     690,\n     689,\n     686,\n     692,\n     696,\n     695,\n     693,\n     699,\n     703,\n     705,\n     710,\n     708]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False]]],\n  ['regression: scenario 18',\n   [700,\n    [665,\n     658,\n     660,\n     666,\n     672,\n     679,\n     685,\n     679,\n     687,\n     689,\n     695,\n     693,\n     685,\n     690,\n     698,\n     694,\n     697,\n     690,\n     691,\n     690,\n     697,\n     701,\n     702,\n     700]],\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    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False]]],\n  ['control: slow recovery upstages on time',\n   [700, [690, 691, 692, 692, 693, 693, 694, 694, 694, 694, 694, 694, 695, 696, 700]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [False, False]]],\n  ['control: second cycle after short first',\n   [700, [690, 692, 694, 696, 698, 700, 690, 692, 694, 694, 694, 694, 694, 694, 694, 694, 694]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True]]],\n  ['control: droop recovery above upstage exit',\n   [700, [665, 675, 685, 693, 696, 700]],\n   [[True, True], [True, True], [True, True], [True, True], [True, True], [False, False]]],\n  ['regression: stage two cycling',\n   [700, [665, 698, 668, 668, 668, 668, 699, 700]],\n   [[True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False]]],\n  ['regression: stage two cycling late',\n   [700, [669, 698, 669, 669, 666, 669, 669]],\n   [[True, True], [True, False], [True, False], [True, False], [True, True], [True, True], [True, True]]],\n  ['control: scenario 1',\n   [700,\n    [697,\n     690,\n     685,\n     682,\n     687,\n     690,\n     693,\n     687,\n     689,\n     697,\n     689,\n     685,\n     680,\n     679,\n     671,\n     675,\n     680,\n     675,\n     676,\n     678,\n     673,\n     668,\n     663,\n     662,\n     665,\n     662,\n     661,\n     669,\n     666,\n     665]],\n   [[False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\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    [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    [True, True],\n    [True, True]]]],\n [['regression: scenario 9',\n   [700,\n    [685,\n     682,\n     690,\n     695,\n     703,\n     708,\n     700,\n     692,\n     693,\n     689,\n     684,\n     677,\n     671,\n     677,\n     684,\n     677,\n     676,\n     684,\n     683,\n     682,\n     679,\n     683,\n     687,\n     691,\n     692,\n     699,\n     704,\n     702,\n     708]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, 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    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False]]],\n  ['regression: scenario 39',\n   [700,\n    [691,\n     692,\n     691,\n     685,\n     683,\n     676,\n     671,\n     679,\n     684,\n     677,\n     685,\n     693,\n     689,\n     693,\n     694,\n     697,\n     705,\n     697,\n     693,\n     688,\n     690,\n     686,\n     681,\n     686,\n     684,\n     683]],\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    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, 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    [True, False],\n    [True, False]]],\n  ['control: slow recovery upstages on time',\n   [700, [690, 691, 692, 692, 693, 693, 694, 694, 694, 694, 694, 694, 695, 696, 700]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [False, False]]],\n  ['control: second cycle after short first',\n   [700, [690, 692, 694, 696, 698, 700, 690, 692, 694, 694, 694, 694, 694, 694, 694, 694, 694]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True]]],\n  ['control: droop recovery above upstage exit',\n   [700, [665, 675, 685, 693, 696, 700]],\n   [[True, True], [True, True], [True, True], [True, True], [True, True], [False, False]]],\n  ['regression: stage two cycling',\n   [700, [665, 698, 668, 668, 668, 668, 699, 700]],\n   [[True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False]]],\n  ['regression: stage two cycling late',\n   [700, [669, 698, 669, 669, 666, 669, 669]],\n   [[True, True], [True, False], [True, False], [True, False], [True, True], [True, True], [True, True]]],\n  ['regression: scenario 1',\n   [700,\n    [682,\n     679,\n     685,\n     683,\n     680,\n     678,\n     684,\n     682,\n     681,\n     688,\n     693,\n     698,\n     702,\n     710,\n     710,\n     710,\n     708,\n     701,\n     694,\n     696,\n     693]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False]]]],\n [['regression: scenario 53',\n   [700,\n    [679,\n     683,\n     681,\n     682,\n     687,\n     684,\n     677,\n     674,\n     681,\n     673,\n     666,\n     670,\n     671,\n     670,\n     665,\n     657,\n     665,\n     671,\n     677,\n     683,\n     690,\n     691,\n     697]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\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    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False]]],\n  ['regression: scenario 46',\n   [700,\n    [674,\n     678,\n     684,\n     683,\n     687,\n     691,\n     685,\n     683,\n     683,\n     676,\n     672,\n     677,\n     676,\n     682,\n     690,\n     697,\n     689,\n     693,\n     696,\n     703,\n     698,\n     698,\n     698,\n     703,\n     697,\n     697,\n     691,\n     688,\n     691]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [True, False],\n    [True, False]]],\n  ['control: slow recovery upstages on time',\n   [700, [690, 691, 692, 692, 693, 693, 694, 694, 694, 694, 694, 694, 695, 696, 700]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [False, False]]],\n  ['control: second cycle after short first',\n   [700, [690, 692, 694, 696, 698, 700, 690, 692, 694, 694, 694, 694, 694, 694, 694, 694, 694]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True]]],\n  ['control: droop recovery above upstage exit',\n   [700, [665, 675, 685, 693, 696, 700]],\n   [[True, True], [True, True], [True, True], [True, True], [True, True], [False, False]]],\n  ['regression: stage two cycling',\n   [700, [665, 698, 668, 668, 668, 668, 699, 700]],\n   [[True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False]]],\n  ['regression: stage two cycling late',\n   [700, [669, 698, 669, 669, 666, 669, 669]],\n   [[True, True], [True, False], [True, False], [True, False], [True, True], [True, True], [True, True]]],\n  ['control: scenario 1',\n   [700, [690, 685, 681, 689, 689, 687, 693, 701, 709, 709, 706, 703, 698, 694, 697, 699, 700, 702]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [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":"cb5795736a49b156d4ce9b1e35bc140fc5c90242d17c642a19befcdb6d1bd2f7","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(setpoint, temps):\n    s1 = False\n    s2 = False\n    run1 = 0\n    s2_off = None\n    out = []\n    for minute, temp in enumerate(temps):\n        if s1 and temp >= setpoint:\n            s1 = False\n        elif not s1 and temp <= setpoint - 10:\n            s1 = True\n            run1 = 0\n        if s1:\n            run1 += 1\n        if s2 and (temp >= setpoint or not s1):\n            s2 = False\n            s2_off = minute\n        elif not s2 and s1 and (temp <= setpoint - 30 or (run1 > 10 and temp < setpoint - 5)):\n            if s2_off is None or minute - s2_off >= 3:\n                s2 = True\n        out.append([s1, s2])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: stage two cycling',\n   [700, [665, 698, 668, 668, 668, 668, 699, 700]],\n   [[True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False]]],\n  ['regression: scenario 7',\n   [700,\n    [680,\n     679,\n     676,\n     682,\n     683,\n     680,\n     688,\n     686,\n     692,\n     688,\n     692,\n     697,\n     696,\n     688,\n     693,\n     697,\n     702,\n     696,\n     703,\n     699,\n     706,\n     703,\n     703,\n     696]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False]]],\n  ['control: slow recovery upstages on time',\n   [700, [690, 691, 692, 692, 693, 693, 694, 694, 694, 694, 694, 694, 695, 696, 700]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [False, False]]],\n  ['control: second cycle after short first',\n   [700, [690, 692, 694, 696, 698, 700, 690, 692, 694, 694, 694, 694, 694, 694, 694, 694, 694]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True]]],\n  ['control: droop recovery above upstage exit',\n   [700, [665, 675, 685, 693, 696, 700]],\n   [[True, True], [True, True], [True, True], [True, True], [True, True], [False, False]]],\n  ['regression: stage two cycling late',\n   [700, [669, 698, 669, 669, 666, 669, 669]],\n   [[True, True], [True, False], [True, False], [True, False], [True, True], [True, True], [True, True]]],\n  ['control: scenario 1',\n   [700,\n    [668,\n     676,\n     684,\n     689,\n     688,\n     685,\n     691,\n     686,\n     690,\n     688,\n     696,\n     688,\n     691,\n     693,\n     690,\n     693,\n     693,\n     686,\n     679,\n     685,\n     678,\n     682,\n     677,\n     685,\n     679,\n     675,\n     682,\n     688,\n     696]],\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    [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    [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  ['control: scenario 2',\n   [700, [650, 652, 648, 644, 640, 637, 645, 650, 657, 654, 651, 644, 643, 651, 645, 643, 635]],\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    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True]]]],\n [['regression: stage two cycling late',\n   [700, [669, 698, 669, 669, 666, 669, 669]],\n   [[True, True], [True, False], [True, False], [True, False], [True, True], [True, True], [True, True]]],\n  ['regression: scenario 36',\n   [700,\n    [661,\n     668,\n     666,\n     671,\n     674,\n     671,\n     678,\n     679,\n     687,\n     691,\n     697,\n     692,\n     693,\n     692,\n     687,\n     684,\n     688,\n     688,\n     689,\n     697,\n     694,\n     689,\n     681,\n     686,\n     678,\n     683,\n     685,\n     686,\n     689]],\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    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [True, False],\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  ['control: slow recovery upstages on time',\n   [700, [690, 691, 692, 692, 693, 693, 694, 694, 694, 694, 694, 694, 695, 696, 700]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [False, False]]],\n  ['control: second cycle after short first',\n   [700, [690, 692, 694, 696, 698, 700, 690, 692, 694, 694, 694, 694, 694, 694, 694, 694, 694]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True]]],\n  ['control: droop recovery above upstage exit',\n   [700, [665, 675, 685, 693, 696, 700]],\n   [[True, True], [True, True], [True, True], [True, True], [True, True], [False, False]]],\n  ['regression: stage two cycling',\n   [700, [665, 698, 668, 668, 668, 668, 699, 700]],\n   [[True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False]]],\n  ['control: scenario 1',\n   [700,\n    [664,\n     664,\n     656,\n     661,\n     657,\n     652,\n     647,\n     647,\n     642,\n     647,\n     646,\n     644,\n     642,\n     634,\n     634,\n     637,\n     640,\n     644,\n     650,\n     643,\n     640,\n     640]],\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    [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    [True, True],\n    [True, True]]],\n  ['control: scenario 2',\n   [700, [678, 683, 689, 697, 705, 705, 710, 705, 704, 709, 701, 709, 710, 710, 704, 696, 702, 705, 709]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False]]]],\n [['regression: scenario 5',\n   [700,\n    [686,\n     687,\n     692,\n     699,\n     698,\n     690,\n     685,\n     690,\n     684,\n     690,\n     689,\n     686,\n     692,\n     696,\n     695,\n     693,\n     699,\n     703,\n     705,\n     710,\n     708]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False]]],\n  ['regression: scenario 18',\n   [700,\n    [665,\n     658,\n     660,\n     666,\n     672,\n     679,\n     685,\n     679,\n     687,\n     689,\n     695,\n     693,\n     685,\n     690,\n     698,\n     694,\n     697,\n     690,\n     691,\n     690,\n     697,\n     701,\n     702,\n     700]],\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    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False]]],\n  ['control: slow recovery upstages on time',\n   [700, [690, 691, 692, 692, 693, 693, 694, 694, 694, 694, 694, 694, 695, 696, 700]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [False, False]]],\n  ['control: second cycle after short first',\n   [700, [690, 692, 694, 696, 698, 700, 690, 692, 694, 694, 694, 694, 694, 694, 694, 694, 694]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True]]],\n  ['control: droop recovery above upstage exit',\n   [700, [665, 675, 685, 693, 696, 700]],\n   [[True, True], [True, True], [True, True], [True, True], [True, True], [False, False]]],\n  ['regression: stage two cycling',\n   [700, [665, 698, 668, 668, 668, 668, 699, 700]],\n   [[True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False]]],\n  ['regression: stage two cycling late',\n   [700, [669, 698, 669, 669, 666, 669, 669]],\n   [[True, True], [True, False], [True, False], [True, False], [True, True], [True, True], [True, True]]],\n  ['control: scenario 1',\n   [700,\n    [697,\n     690,\n     685,\n     682,\n     687,\n     690,\n     693,\n     687,\n     689,\n     697,\n     689,\n     685,\n     680,\n     679,\n     671,\n     675,\n     680,\n     675,\n     676,\n     678,\n     673,\n     668,\n     663,\n     662,\n     665,\n     662,\n     661,\n     669,\n     666,\n     665]],\n   [[False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\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    [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    [True, True],\n    [True, True]]]],\n [['regression: scenario 9',\n   [700,\n    [685,\n     682,\n     690,\n     695,\n     703,\n     708,\n     700,\n     692,\n     693,\n     689,\n     684,\n     677,\n     671,\n     677,\n     684,\n     677,\n     676,\n     684,\n     683,\n     682,\n     679,\n     683,\n     687,\n     691,\n     692,\n     699,\n     704,\n     702,\n     708]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, 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    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False]]],\n  ['regression: scenario 39',\n   [700,\n    [691,\n     692,\n     691,\n     685,\n     683,\n     676,\n     671,\n     679,\n     684,\n     677,\n     685,\n     693,\n     689,\n     693,\n     694,\n     697,\n     705,\n     697,\n     693,\n     688,\n     690,\n     686,\n     681,\n     686,\n     684,\n     683]],\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    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, 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    [True, False],\n    [True, False]]],\n  ['control: slow recovery upstages on time',\n   [700, [690, 691, 692, 692, 693, 693, 694, 694, 694, 694, 694, 694, 695, 696, 700]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [False, False]]],\n  ['control: second cycle after short first',\n   [700, [690, 692, 694, 696, 698, 700, 690, 692, 694, 694, 694, 694, 694, 694, 694, 694, 694]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True]]],\n  ['control: droop recovery above upstage exit',\n   [700, [665, 675, 685, 693, 696, 700]],\n   [[True, True], [True, True], [True, True], [True, True], [True, True], [False, False]]],\n  ['regression: stage two cycling',\n   [700, [665, 698, 668, 668, 668, 668, 699, 700]],\n   [[True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False]]],\n  ['regression: stage two cycling late',\n   [700, [669, 698, 669, 669, 666, 669, 669]],\n   [[True, True], [True, False], [True, False], [True, False], [True, True], [True, True], [True, True]]],\n  ['regression: scenario 1',\n   [700,\n    [682,\n     679,\n     685,\n     683,\n     680,\n     678,\n     684,\n     682,\n     681,\n     688,\n     693,\n     698,\n     702,\n     710,\n     710,\n     710,\n     708,\n     701,\n     694,\n     696,\n     693]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False]]]],\n [['regression: scenario 53',\n   [700,\n    [679,\n     683,\n     681,\n     682,\n     687,\n     684,\n     677,\n     674,\n     681,\n     673,\n     666,\n     670,\n     671,\n     670,\n     665,\n     657,\n     665,\n     671,\n     677,\n     683,\n     690,\n     691,\n     697]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\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    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False]]],\n  ['regression: scenario 46',\n   [700,\n    [674,\n     678,\n     684,\n     683,\n     687,\n     691,\n     685,\n     683,\n     683,\n     676,\n     672,\n     677,\n     676,\n     682,\n     690,\n     697,\n     689,\n     693,\n     696,\n     703,\n     698,\n     698,\n     698,\n     703,\n     697,\n     697,\n     691,\n     688,\n     691]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [True, False],\n    [True, False]]],\n  ['control: slow recovery upstages on time',\n   [700, [690, 691, 692, 692, 693, 693, 694, 694, 694, 694, 694, 694, 695, 696, 700]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, True],\n    [True, True],\n    [False, False]]],\n  ['control: second cycle after short first',\n   [700, [690, 692, 694, 696, 698, 700, 690, 692, 694, 694, 694, 694, 694, 694, 694, 694, 694]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True]]],\n  ['control: droop recovery above upstage exit',\n   [700, [665, 675, 685, 693, 696, 700]],\n   [[True, True], [True, True], [True, True], [True, True], [True, True], [False, False]]],\n  ['regression: stage two cycling',\n   [700, [665, 698, 668, 668, 668, 668, 699, 700]],\n   [[True, True],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, True],\n    [True, True],\n    [True, False],\n    [False, False]]],\n  ['regression: stage two cycling late',\n   [700, [669, 698, 669, 669, 666, 669, 669]],\n   [[True, True], [True, False], [True, False], [True, False], [True, True], [True, True], [True, True]]],\n  ['control: scenario 1',\n   [700, [690, 685, 681, 689, 689, 687, 693, 701, 709, 709, 706, 703, 698, 694, 697, 699, 700, 702]],\n   [[True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [True, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [False, False],\n    [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-two-stage-heat-upstage-stage2-exit","generated_at":"2026-09-29T14:51:45.136394+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.","root_cause":"The stage-2 end test uses setpoint instead of setpoint - 0.3 F.","sha256":"dd002d99ae12a95976381bf2d6d2da90558c0ddbea7e7eb490ac8478dea60da1","title":"Stage 2 stays on until the heating setpoint is reached · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":43.742,"exit_code":1,"observations":[{"actual":[[true,true],[true,false],[true,false],[true,false],[true,true],[true,true],[true,false],[false,false]],"check":"regression: stage two cycling","expected":[[true,true],[true,false],[true,false],[true,false],[true,true],[true,true],[true,false],[false,false]],"passed":true},{"actual":[[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false]],"check":"regression: scenario 7","expected":[[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true],[true,false],[true,false],[true,false],[true,true],[true,false],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false]],"passed":false},{"actual":[[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true],[true,true],[true,true],[true,true],[false,false]],"check":"control: slow recovery upstages on time","expected":[[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true],[true,true],[true,true],[true,true],[false,false]],"passed":true},{"actual":[[true,false],[true,false],[true,false],[true,false],[true,false],[false,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true]],"check":"control: second cycle after short first","expected":[[true,false],[true,false],[true,false],[true,false],[true,false],[false,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true]],"passed":true},{"actual":[[true,true],[true,true],[true,true],[true,true],[true,true],[false,false]],"check":"control: droop recovery above upstage exit","expected":[[true,true],[true,true],[true,true],[true,true],[true,true],[false,false]],"passed":true},{"actual":[[true,true],[true,false],[true,false],[true,false],[true,true],[true,true],[true,true]],"check":"regression: stage two cycling late","expected":[[true,true],[true,false],[true,false],[true,false],[true,true],[true,true],[true,true]],"passed":true},{"actual":[[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true]],"check":"control: scenario 1","expected":[[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true]],"passed":true},{"actual":[[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true]],"check":"control: scenario 2","expected":[[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: stage two cycling\", \"actual\": [[true, true], [true, false], [true, false], [true, false], [true, true], [true, true], [true, false], [false, false]], \"expected\": [[true, true], [true, false], [true, false], [true, false], [true, true], [true, true], [true, false], [false, false]], \"passed\": true}, {\"check\": \"regression: scenario 7\", \"actual\": [[true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false]], \"expected\": [[true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true], [true, false], [true, false], [true, false], [true, true], [true, false], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false]], \"passed\": false}, {\"check\": \"control: slow recovery upstages on time\", \"actual\": [[true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true], [true, true], [true, true], [true, true], [false, false]], \"expected\": [[true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true], [true, true], [true, true], [true, true], [false, false]], \"passed\": true}, {\"check\": \"control: second cycle after short first\", \"actual\": [[true, false], [true, false], [true, false], [true, false], [true, false], [false, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true]], \"expected\": [[true, false], [true, false], [true, false], [true, false], [true, false], [false, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true]], \"passed\": true}, {\"check\": \"control: droop recovery above upstage exit\", \"actual\": [[true, true], [true, true], [true, true], [true, true], [true, true], [false, false]], \"expected\": [[true, true], [true, true], [true, true], [true, true], [true, true], [false, false]], \"passed\": true}, {\"check\": \"regression: stage two cycling late\", \"actual\": [[true, true], [true, false], [true, false], [true, false], [true, true], [true, true], [true, true]], \"expected\": [[true, true], [true, false], [true, false], [true, false], [true, true], [true, true], [true, true]], \"passed\": true}, {\"check\": \"control: scenario 1\", \"actual\": [[true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true]], \"expected\": [[true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true]], \"passed\": true}, {\"check\": \"control: scenario 2\", \"actual\": [[true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true]], \"expected\": [[true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.473,"exit_code":1,"observations":[{"actual":[[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[false,false]],"check":"regression: stage two cycling","expected":[[true,true],[true,false],[true,false],[true,false],[true,true],[true,true],[true,false],[false,false]],"passed":false},{"actual":[[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false]],"check":"regression: scenario 7","expected":[[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true],[true,false],[true,false],[true,false],[true,true],[true,false],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false],[false,false]],"passed":false},{"actual":[[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true],[true,true],[true,true],[true,true],[false,false]],"check":"control: slow recovery upstages on time","expected":[[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true],[true,true],[true,true],[true,true],[false,false]],"passed":true},{"actual":[[true,false],[true,false],[true,false],[true,false],[true,false],[false,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true]],"check":"control: second cycle after short first","expected":[[true,false],[true,false],[true,false],[true,false],[true,false],[false,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,false],[true,true]],"passed":true},{"actual":[[true,true],[true,true],[true,true],[true,true],[true,true],[false,false]],"check":"control: droop recovery above upstage exit","expected":[[true,true],[true,true],[true,true],[true,true],[true,true],[false,false]],"passed":true},{"actual":[[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true]],"check":"regression: stage two cycling late","expected":[[true,true],[true,false],[true,false],[true,false],[true,true],[true,true],[true,true]],"passed":false},{"actual":[[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true]],"check":"control: scenario 1","expected":[[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true]],"passed":true},{"actual":[[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true]],"check":"control: scenario 2","expected":[[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true],[true,true]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: stage two cycling\", \"actual\": [[true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [false, false]], \"expected\": [[true, true], [true, false], [true, false], [true, false], [true, true], [true, true], [true, false], [false, false]], \"passed\": false}, {\"check\": \"regression: scenario 7\", \"actual\": [[true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false]], \"expected\": [[true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true], [true, false], [true, false], [true, false], [true, true], [true, false], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false], [false, false]], \"passed\": false}, {\"check\": \"control: slow recovery upstages on time\", \"actual\": [[true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true], [true, true], [true, true], [true, true], [false, false]], \"expected\": [[true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true], [true, true], [true, true], [true, true], [false, false]], \"passed\": true}, {\"check\": \"control: second cycle after short first\", \"actual\": [[true, false], [true, false], [true, false], [true, false], [true, false], [false, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true]], \"expected\": [[true, false], [true, false], [true, false], [true, false], [true, false], [false, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, false], [true, true]], \"passed\": true}, {\"check\": \"control: droop recovery above upstage exit\", \"actual\": [[true, true], [true, true], [true, true], [true, true], [true, true], [false, false]], \"expected\": [[true, true], [true, true], [true, true], [true, true], [true, true], [false, false]], \"passed\": true}, {\"check\": \"regression: stage two cycling late\", \"actual\": [[true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true]], \"expected\": [[true, true], [true, false], [true, false], [true, false], [true, true], [true, true], [true, true]], \"passed\": false}, {\"check\": \"control: scenario 1\", \"actual\": [[true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true]], \"expected\": [[true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true]], \"passed\": true}, {\"check\": \"control: scenario 2\", \"actual\": [[true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true]], \"expected\": [[true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true], [true, true]], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}