FAILURE MAP
← Case archive

FA-92766 / HVAC thermostat control / Open access

Optimal start drops back to setback as the space warms · case 01

The setpoint oscillates between occupied and setback during recovery.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The recovery decision is recomputed every minute instead of latched.

VERIFIED REPAIR

Latch recovery once it starts.

Unsuccessful approach: Releasing recovery only once the space reaches the occupied setpoint still returns to setback before occupancy.

Case contract

Optimal start for a heating setback, sampled per minute from minute 0; rate is the recovery rate in tenths F per hour. While not recovering, required minutes = ceil(max(0, occ_sp - temp) * 60 / rate); recovery starts (and latches) when minutes left until occupancy <= required, but never more than 180 minutes early, and in any case at occupancy. Return the active setpoint per minute.

Why this case matters

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.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(occ_minute, occ_sp, unocc_sp, rate, temps):
    recovering = False
    out = []
    for minute, temp in enumerate(temps):
        left = occ_minute - minute
        need = occ_sp - temp
        recovering = False
        if not recovering:
            required = -(-max(0, need) * 60 // rate)
            if left <= 0 or (left <= required and left <= 180):
                recovering = True
        out.append(occ_sp if recovering else unocc_sp)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [60,
    700,
    600,
    30,
    [604,
     604,
     605,
     605,
     605,
     607,
     609,
     611,
     611,
     611,
     612,
     612,
     614,
     615,
     617,
     619,
     620,
     620,
     620,
     620,
     621,
     621,
     623,
     623,
     623,
     623,
     624,
     625,
     626,
     626,
     628,
     629,
     630,
     630,
     631,
     632,
     633,
     633,
     633,
     635,
     636,
     638,
     640,
     640,
     640,
     641,
     643,
     643,
     645,
     646,
     646,
     646,
     648,
     648,
     648,
     648,
     648,
     648,
     648,
     650,
     651,
     651,
     651,
     652]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    240,
    [603,
     603,
     605,
     606,
     606,
     607,
     607,
     608,
     608,
     608,
     608,
     608,
     608,
     608,
     608,
     608,
     610,
     611,
     612,
     613,
     615,
     615,
     615,
     617,
     617,
     619,
     619,
     620,
     620,
     620,
     622,
     624,
     624,
     624,
     625,
     625,
     625,
     626,
     626,
     628,
     630,
     631,
     632,
     634,
     636,
     638,
     638,
     638,
     638,
     639,
     640,
     642,
     644,
     645,
     645,
     646,
     646,
     647,
     648,
     650,
     652,
     654,
     656,
     656,
     656,
     657,
     659,
     659]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 3',
   [45,
    700,
    600,
    120,
    [619,
     619,
     619,
     620,
     620,
     620,
     620,
     620,
     620,
     620,
     620,
     622,
     622,
     622,
     623,
     623,
     625,
     627,
     627,
     628,
     629,
     629,
     629,
     629,
     630,
     631,
     631,
     631,
     632,
     633,
     635,
     635,
     636,
     636,
     638,
     639,
     640,
     640,
     641,
     641,
     641,
     641,
     643,
     643,
     643,
     643,
     643,
     643,
     644,
     646,
     646,
     646,
     648]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]]],
 [['regression: scenario 12',
   [30,
    700,
    600,
    60,
    [679,
     680,
     682,
     682,
     682,
     682,
     682,
     682,
     683,
     685,
     687,
     689,
     690,
     692,
     692,
     692,
     692,
     692,
     692,
     694,
     695,
     696,
     696,
     696,
     696,
     696,
     696,
     698,
     698,
     699,
     699,
     699,
     699,
     699,
     700,
     701,
     701,
     701]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: scenario 15',
   [45,
    700,
    600,
    30,
    [677,
     677,
     679,
     680,
     681,
     681,
     681,
     681,
     683,
     683,
     683,
     684,
     686,
     686,
     686,
     688,
     688,
     689,
     691,
     693,
     693,
     693,
     693,
     693,
     694,
     695,
     695,
     696,
     696,
     696,
     697,
     699,
     700,
     700,
     700,
     700,
     701,
     703,
     704,
     706,
     707,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [60,
    700,
    600,
    240,
    [689,
     689,
     689,
     689,
     690,
     692,
     693,
     695,
     696,
     697,
     697,
     699,
     700,
     702,
     703,
     703,
     703,
     703,
     704,
     704,
     706,
     707,
     707,
     708,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]]],
 [['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: scenario 59',
   [60,
    700,
    600,
    30,
    [663,
     663,
     665,
     666,
     668,
     669,
     671,
     671,
     672,
     672,
     672,
     674,
     676,
     678,
     678,
     679,
     679,
     679,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     682,
     683,
     684,
     685,
     685,
     686,
     687,
     689,
     689,
     689,
     690,
     691,
     691,
     692,
     692,
     692,
     693,
     693,
     694,
     695,
     695,
     695,
     696,
     698,
     700,
     702,
     704,
     705,
     706,
     706,
     706,
     706,
     706,
     706,
     706,
     708,
     710,
     710,
     710]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [45,
    700,
    600,
    90,
    [624,
     624,
     626,
     627,
     627,
     628,
     628,
     628,
     630,
     632,
     633,
     635,
     636,
     638,
     638,
     638,
     640,
     640,
     640,
     640,
     641,
     642,
     642,
     644,
     644,
     644,
     646,
     646,
     647,
     647,
     649,
     651,
     652,
     653,
     655,
     655,
     656,
     656,
     657,
     657,
     657,
     659,
     660,
     662,
     662,
     663,
     663,
     663,
     664]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    30,
    [652,
     652,
     652,
     652,
     654,
     656,
     658,
     658,
     658,
     659,
     659,
     661,
     661,
     661,
     663,
     664,
     664,
     664,
     665,
     665,
     667,
     668,
     668,
     668,
     669,
     671,
     671,
     671,
     671,
     671,
     671,
     671,
     671,
     671,
     672,
     673,
     673,
     673,
     675,
     677,
     677,
     678,
     678,
     678,
     679,
     681,
     682,
     684,
     684,
     686,
     686,
     688,
     689,
     690,
     690,
     690,
     691,
     691,
     691,
     692,
     692,
     692,
     693,
     694]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]]],
 [['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [200,
    700,
    600,
    60,
    [658,
     660,
     660,
     661,
     661,
     661,
     661,
     663,
     663,
     663,
     663,
     665,
     665,
     665,
     666,
     666,
     667,
     669,
     669,
     669,
     670,
     670,
     671,
     671,
     672,
     672,
     672,
     672,
     672,
     672,
     672,
     674,
     674,
     674,
     674,
     674,
     674,
     676,
     676,
     676,
     678,
     679,
     681,
     681,
     681,
     681,
     681,
     681,
     683,
     683,
     683,
     683,
     683,
     685,
     686,
     687,
     687,
     687,
     689,
     691,
     692,
     694,
     694,
     694,
     694,
     696,
     696,
     696,
     698,
     699,
     701,
     702,
     702,
     703,
     703,
     703,
     704,
     706,
     707,
     707,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    30,
    [673,
     674,
     675,
     676,
     678,
     680,
     682,
     684,
     684,
     684,
     686,
     687,
     688,
     690,
     692,
     693,
     694,
     694,
     694,
     695,
     696,
     696,
     696,
     696,
     698,
     699,
     699,
     701,
     701,
     701,
     702,
     704,
     706,
     708,
     708,
     708,
     708,
     708,
     709,
     709,
     709,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 3',
   [200,
    700,
    600,
    120,
    [616,
     618,
     620,
     620,
     620,
     621,
     622,
     622,
     623,
     624,
     625,
     626,
     626,
     626,
     626,
     628,
     629,
     631,
     631,
     632,
     632,
     634,
     634,
     634,
     634,
     636,
     636,
     637,
     639,
     639,
     640,
     641,
     641,
     641,
     641,
     641,
     642,
     642,
     642,
     642,
     642,
     644,
     644,
     645,
     645,
     645,
     645,
     647,
     648,
     649,
     649,
     650,
     651,
     653,
     655,
     657,
     657,
     658,
     658,
     659,
     659,
     659,
     660,
     660,
     660,
     661,
     661,
     661,
     661,
     661,
     662,
     663,
     664,
     664,
     665,
     665,
     666,
     666,
     666,
     668,
     669,
     669,
     669,
     669,
     671,
     671,
     671,
     672,
     672,
     674,
     674,
     676,
     676,
     676,
     676,
     676,
     676,
     678,
     678,
     679,
     679,
     681,
     681,
     683,
     683,
     683,
     685,
     686,
     687,
     687,
     688,
     689,
     691,
     692,
     694,
     695,
     697,
     697,
     698,
     698,
     698,
     698,
     700,
     700,
     701,
     702,
     702,
     702,
     703,
     703,
     703,
     703,
     705,
     707,
     707,
     707,
     707,
     708,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700]]],
 [['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: scenario 32',
   [60,
    700,
    600,
    30,
    [664,
     664,
     666,
     666,
     666,
     666,
     666,
     668,
     670,
     671,
     671,
     672,
     673,
     674,
     674,
     676,
     677,
     677,
     678,
     678,
     678,
     678,
     679,
     679,
     679,
     679,
     681,
     682,
     683,
     684,
     685,
     686,
     687,
     688,
     689,
     689,
     691,
     692,
     692,
     692,
     692,
     693,
     693,
     695,
     695,
     695,
     695,
     695,
     695,
     697,
     697,
     697,
     698,
     699,
     699,
     701,
     702,
     702,
     702,
     702,
     704,
     704,
     705,
     705,
     705,
     707]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [200,
    700,
    600,
    120,
    [674,
     676,
     677,
     677,
     678,
     678,
     679,
     679,
     681,
     682,
     684,
     686,
     687,
     687,
     687,
     687,
     687,
     689,
     690,
     692,
     694,
     696,
     697,
     697,
     697,
     698,
     700,
     700,
     702,
     702,
     703,
     703,
     704,
     705,
     707,
     709,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    30,
    [690,
     692,
     694,
     695,
     697,
     697,
     697,
     697,
     697,
     697,
     698,
     699,
     699,
     699,
     699,
     700,
     700,
     700,
     700,
     702,
     704,
     705,
     705,
     705,
     706,
     706,
     707,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: warming before occupancy[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Failed
control: steady recovery[600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: lead limit[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700]Passed
control: fractional minutes[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: lead limit boundary[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700]Passed
control: scenario 1[700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: scenario 2[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: scenario 3[600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed

SHA-256 / 721a45792cbee30d390960a1b20b5ec1f72521c6a3e98a279eb7011ab07683a0

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(occ_minute, occ_sp, unocc_sp, rate, temps):
    recovering = False
    out = []
    for minute, temp in enumerate(temps):
        left = occ_minute - minute
        need = occ_sp - temp
        if recovering and temp >= occ_sp:
            recovering = False
        if not recovering:
            required = -(-max(0, need) * 60 // rate)
            if left <= 0 or (left <= required and left <= 180):
                recovering = True
        out.append(occ_sp if recovering else unocc_sp)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [60,
    700,
    600,
    30,
    [604,
     604,
     605,
     605,
     605,
     607,
     609,
     611,
     611,
     611,
     612,
     612,
     614,
     615,
     617,
     619,
     620,
     620,
     620,
     620,
     621,
     621,
     623,
     623,
     623,
     623,
     624,
     625,
     626,
     626,
     628,
     629,
     630,
     630,
     631,
     632,
     633,
     633,
     633,
     635,
     636,
     638,
     640,
     640,
     640,
     641,
     643,
     643,
     645,
     646,
     646,
     646,
     648,
     648,
     648,
     648,
     648,
     648,
     648,
     650,
     651,
     651,
     651,
     652]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    240,
    [603,
     603,
     605,
     606,
     606,
     607,
     607,
     608,
     608,
     608,
     608,
     608,
     608,
     608,
     608,
     608,
     610,
     611,
     612,
     613,
     615,
     615,
     615,
     617,
     617,
     619,
     619,
     620,
     620,
     620,
     622,
     624,
     624,
     624,
     625,
     625,
     625,
     626,
     626,
     628,
     630,
     631,
     632,
     634,
     636,
     638,
     638,
     638,
     638,
     639,
     640,
     642,
     644,
     645,
     645,
     646,
     646,
     647,
     648,
     650,
     652,
     654,
     656,
     656,
     656,
     657,
     659,
     659]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 3',
   [45,
    700,
    600,
    120,
    [619,
     619,
     619,
     620,
     620,
     620,
     620,
     620,
     620,
     620,
     620,
     622,
     622,
     622,
     623,
     623,
     625,
     627,
     627,
     628,
     629,
     629,
     629,
     629,
     630,
     631,
     631,
     631,
     632,
     633,
     635,
     635,
     636,
     636,
     638,
     639,
     640,
     640,
     641,
     641,
     641,
     641,
     643,
     643,
     643,
     643,
     643,
     643,
     644,
     646,
     646,
     646,
     648]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]]],
 [['regression: scenario 12',
   [30,
    700,
    600,
    60,
    [679,
     680,
     682,
     682,
     682,
     682,
     682,
     682,
     683,
     685,
     687,
     689,
     690,
     692,
     692,
     692,
     692,
     692,
     692,
     694,
     695,
     696,
     696,
     696,
     696,
     696,
     696,
     698,
     698,
     699,
     699,
     699,
     699,
     699,
     700,
     701,
     701,
     701]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: scenario 15',
   [45,
    700,
    600,
    30,
    [677,
     677,
     679,
     680,
     681,
     681,
     681,
     681,
     683,
     683,
     683,
     684,
     686,
     686,
     686,
     688,
     688,
     689,
     691,
     693,
     693,
     693,
     693,
     693,
     694,
     695,
     695,
     696,
     696,
     696,
     697,
     699,
     700,
     700,
     700,
     700,
     701,
     703,
     704,
     706,
     707,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [60,
    700,
    600,
    240,
    [689,
     689,
     689,
     689,
     690,
     692,
     693,
     695,
     696,
     697,
     697,
     699,
     700,
     702,
     703,
     703,
     703,
     703,
     704,
     704,
     706,
     707,
     707,
     708,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]]],
 [['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: scenario 59',
   [60,
    700,
    600,
    30,
    [663,
     663,
     665,
     666,
     668,
     669,
     671,
     671,
     672,
     672,
     672,
     674,
     676,
     678,
     678,
     679,
     679,
     679,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     682,
     683,
     684,
     685,
     685,
     686,
     687,
     689,
     689,
     689,
     690,
     691,
     691,
     692,
     692,
     692,
     693,
     693,
     694,
     695,
     695,
     695,
     696,
     698,
     700,
     702,
     704,
     705,
     706,
     706,
     706,
     706,
     706,
     706,
     706,
     708,
     710,
     710,
     710]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [45,
    700,
    600,
    90,
    [624,
     624,
     626,
     627,
     627,
     628,
     628,
     628,
     630,
     632,
     633,
     635,
     636,
     638,
     638,
     638,
     640,
     640,
     640,
     640,
     641,
     642,
     642,
     644,
     644,
     644,
     646,
     646,
     647,
     647,
     649,
     651,
     652,
     653,
     655,
     655,
     656,
     656,
     657,
     657,
     657,
     659,
     660,
     662,
     662,
     663,
     663,
     663,
     664]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    30,
    [652,
     652,
     652,
     652,
     654,
     656,
     658,
     658,
     658,
     659,
     659,
     661,
     661,
     661,
     663,
     664,
     664,
     664,
     665,
     665,
     667,
     668,
     668,
     668,
     669,
     671,
     671,
     671,
     671,
     671,
     671,
     671,
     671,
     671,
     672,
     673,
     673,
     673,
     675,
     677,
     677,
     678,
     678,
     678,
     679,
     681,
     682,
     684,
     684,
     686,
     686,
     688,
     689,
     690,
     690,
     690,
     691,
     691,
     691,
     692,
     692,
     692,
     693,
     694]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]]],
 [['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [200,
    700,
    600,
    60,
    [658,
     660,
     660,
     661,
     661,
     661,
     661,
     663,
     663,
     663,
     663,
     665,
     665,
     665,
     666,
     666,
     667,
     669,
     669,
     669,
     670,
     670,
     671,
     671,
     672,
     672,
     672,
     672,
     672,
     672,
     672,
     674,
     674,
     674,
     674,
     674,
     674,
     676,
     676,
     676,
     678,
     679,
     681,
     681,
     681,
     681,
     681,
     681,
     683,
     683,
     683,
     683,
     683,
     685,
     686,
     687,
     687,
     687,
     689,
     691,
     692,
     694,
     694,
     694,
     694,
     696,
     696,
     696,
     698,
     699,
     701,
     702,
     702,
     703,
     703,
     703,
     704,
     706,
     707,
     707,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    30,
    [673,
     674,
     675,
     676,
     678,
     680,
     682,
     684,
     684,
     684,
     686,
     687,
     688,
     690,
     692,
     693,
     694,
     694,
     694,
     695,
     696,
     696,
     696,
     696,
     698,
     699,
     699,
     701,
     701,
     701,
     702,
     704,
     706,
     708,
     708,
     708,
     708,
     708,
     709,
     709,
     709,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 3',
   [200,
    700,
    600,
    120,
    [616,
     618,
     620,
     620,
     620,
     621,
     622,
     622,
     623,
     624,
     625,
     626,
     626,
     626,
     626,
     628,
     629,
     631,
     631,
     632,
     632,
     634,
     634,
     634,
     634,
     636,
     636,
     637,
     639,
     639,
     640,
     641,
     641,
     641,
     641,
     641,
     642,
     642,
     642,
     642,
     642,
     644,
     644,
     645,
     645,
     645,
     645,
     647,
     648,
     649,
     649,
     650,
     651,
     653,
     655,
     657,
     657,
     658,
     658,
     659,
     659,
     659,
     660,
     660,
     660,
     661,
     661,
     661,
     661,
     661,
     662,
     663,
     664,
     664,
     665,
     665,
     666,
     666,
     666,
     668,
     669,
     669,
     669,
     669,
     671,
     671,
     671,
     672,
     672,
     674,
     674,
     676,
     676,
     676,
     676,
     676,
     676,
     678,
     678,
     679,
     679,
     681,
     681,
     683,
     683,
     683,
     685,
     686,
     687,
     687,
     688,
     689,
     691,
     692,
     694,
     695,
     697,
     697,
     698,
     698,
     698,
     698,
     700,
     700,
     701,
     702,
     702,
     702,
     703,
     703,
     703,
     703,
     705,
     707,
     707,
     707,
     707,
     708,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700]]],
 [['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: scenario 32',
   [60,
    700,
    600,
    30,
    [664,
     664,
     666,
     666,
     666,
     666,
     666,
     668,
     670,
     671,
     671,
     672,
     673,
     674,
     674,
     676,
     677,
     677,
     678,
     678,
     678,
     678,
     679,
     679,
     679,
     679,
     681,
     682,
     683,
     684,
     685,
     686,
     687,
     688,
     689,
     689,
     691,
     692,
     692,
     692,
     692,
     693,
     693,
     695,
     695,
     695,
     695,
     695,
     695,
     697,
     697,
     697,
     698,
     699,
     699,
     701,
     702,
     702,
     702,
     702,
     704,
     704,
     705,
     705,
     705,
     707]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [200,
    700,
    600,
    120,
    [674,
     676,
     677,
     677,
     678,
     678,
     679,
     679,
     681,
     682,
     684,
     686,
     687,
     687,
     687,
     687,
     687,
     689,
     690,
     692,
     694,
     696,
     697,
     697,
     697,
     698,
     700,
     700,
     702,
     702,
     703,
     703,
     704,
     705,
     707,
     709,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    30,
    [690,
     692,
     694,
     695,
     697,
     697,
     697,
     697,
     697,
     697,
     698,
     699,
     699,
     699,
     699,
     700,
     700,
     700,
     700,
     702,
     704,
     705,
     705,
     705,
     706,
     706,
     707,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: warming before occupancy[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Failed
control: steady recovery[600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: lead limit[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700]Passed
control: fractional minutes[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: lead limit boundary[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700]Passed
control: scenario 1[700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: scenario 2[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: scenario 3[600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed

SHA-256 / 112b52e37fb88d1239911a5ca72df3a470a917c118cd30431997ad725ab4d776

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(occ_minute, occ_sp, unocc_sp, rate, temps):
    recovering = False
    out = []
    for minute, temp in enumerate(temps):
        left = occ_minute - minute
        need = occ_sp - temp
        if not recovering:
            required = -(-max(0, need) * 60 // rate)
            if left <= 0 or (left <= required and left <= 180):
                recovering = True
        out.append(occ_sp if recovering else unocc_sp)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [60,
    700,
    600,
    30,
    [604,
     604,
     605,
     605,
     605,
     607,
     609,
     611,
     611,
     611,
     612,
     612,
     614,
     615,
     617,
     619,
     620,
     620,
     620,
     620,
     621,
     621,
     623,
     623,
     623,
     623,
     624,
     625,
     626,
     626,
     628,
     629,
     630,
     630,
     631,
     632,
     633,
     633,
     633,
     635,
     636,
     638,
     640,
     640,
     640,
     641,
     643,
     643,
     645,
     646,
     646,
     646,
     648,
     648,
     648,
     648,
     648,
     648,
     648,
     650,
     651,
     651,
     651,
     652]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    240,
    [603,
     603,
     605,
     606,
     606,
     607,
     607,
     608,
     608,
     608,
     608,
     608,
     608,
     608,
     608,
     608,
     610,
     611,
     612,
     613,
     615,
     615,
     615,
     617,
     617,
     619,
     619,
     620,
     620,
     620,
     622,
     624,
     624,
     624,
     625,
     625,
     625,
     626,
     626,
     628,
     630,
     631,
     632,
     634,
     636,
     638,
     638,
     638,
     638,
     639,
     640,
     642,
     644,
     645,
     645,
     646,
     646,
     647,
     648,
     650,
     652,
     654,
     656,
     656,
     656,
     657,
     659,
     659]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 3',
   [45,
    700,
    600,
    120,
    [619,
     619,
     619,
     620,
     620,
     620,
     620,
     620,
     620,
     620,
     620,
     622,
     622,
     622,
     623,
     623,
     625,
     627,
     627,
     628,
     629,
     629,
     629,
     629,
     630,
     631,
     631,
     631,
     632,
     633,
     635,
     635,
     636,
     636,
     638,
     639,
     640,
     640,
     641,
     641,
     641,
     641,
     643,
     643,
     643,
     643,
     643,
     643,
     644,
     646,
     646,
     646,
     648]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]]],
 [['regression: scenario 12',
   [30,
    700,
    600,
    60,
    [679,
     680,
     682,
     682,
     682,
     682,
     682,
     682,
     683,
     685,
     687,
     689,
     690,
     692,
     692,
     692,
     692,
     692,
     692,
     694,
     695,
     696,
     696,
     696,
     696,
     696,
     696,
     698,
     698,
     699,
     699,
     699,
     699,
     699,
     700,
     701,
     701,
     701]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: scenario 15',
   [45,
    700,
    600,
    30,
    [677,
     677,
     679,
     680,
     681,
     681,
     681,
     681,
     683,
     683,
     683,
     684,
     686,
     686,
     686,
     688,
     688,
     689,
     691,
     693,
     693,
     693,
     693,
     693,
     694,
     695,
     695,
     696,
     696,
     696,
     697,
     699,
     700,
     700,
     700,
     700,
     701,
     703,
     704,
     706,
     707,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [60,
    700,
    600,
    240,
    [689,
     689,
     689,
     689,
     690,
     692,
     693,
     695,
     696,
     697,
     697,
     699,
     700,
     702,
     703,
     703,
     703,
     703,
     704,
     704,
     706,
     707,
     707,
     708,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]]],
 [['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: scenario 59',
   [60,
    700,
    600,
    30,
    [663,
     663,
     665,
     666,
     668,
     669,
     671,
     671,
     672,
     672,
     672,
     674,
     676,
     678,
     678,
     679,
     679,
     679,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     682,
     683,
     684,
     685,
     685,
     686,
     687,
     689,
     689,
     689,
     690,
     691,
     691,
     692,
     692,
     692,
     693,
     693,
     694,
     695,
     695,
     695,
     696,
     698,
     700,
     702,
     704,
     705,
     706,
     706,
     706,
     706,
     706,
     706,
     706,
     708,
     710,
     710,
     710]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [45,
    700,
    600,
    90,
    [624,
     624,
     626,
     627,
     627,
     628,
     628,
     628,
     630,
     632,
     633,
     635,
     636,
     638,
     638,
     638,
     640,
     640,
     640,
     640,
     641,
     642,
     642,
     644,
     644,
     644,
     646,
     646,
     647,
     647,
     649,
     651,
     652,
     653,
     655,
     655,
     656,
     656,
     657,
     657,
     657,
     659,
     660,
     662,
     662,
     663,
     663,
     663,
     664]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    30,
    [652,
     652,
     652,
     652,
     654,
     656,
     658,
     658,
     658,
     659,
     659,
     661,
     661,
     661,
     663,
     664,
     664,
     664,
     665,
     665,
     667,
     668,
     668,
     668,
     669,
     671,
     671,
     671,
     671,
     671,
     671,
     671,
     671,
     671,
     672,
     673,
     673,
     673,
     675,
     677,
     677,
     678,
     678,
     678,
     679,
     681,
     682,
     684,
     684,
     686,
     686,
     688,
     689,
     690,
     690,
     690,
     691,
     691,
     691,
     692,
     692,
     692,
     693,
     694]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]]],
 [['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [200,
    700,
    600,
    60,
    [658,
     660,
     660,
     661,
     661,
     661,
     661,
     663,
     663,
     663,
     663,
     665,
     665,
     665,
     666,
     666,
     667,
     669,
     669,
     669,
     670,
     670,
     671,
     671,
     672,
     672,
     672,
     672,
     672,
     672,
     672,
     674,
     674,
     674,
     674,
     674,
     674,
     676,
     676,
     676,
     678,
     679,
     681,
     681,
     681,
     681,
     681,
     681,
     683,
     683,
     683,
     683,
     683,
     685,
     686,
     687,
     687,
     687,
     689,
     691,
     692,
     694,
     694,
     694,
     694,
     696,
     696,
     696,
     698,
     699,
     701,
     702,
     702,
     703,
     703,
     703,
     704,
     706,
     707,
     707,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    30,
    [673,
     674,
     675,
     676,
     678,
     680,
     682,
     684,
     684,
     684,
     686,
     687,
     688,
     690,
     692,
     693,
     694,
     694,
     694,
     695,
     696,
     696,
     696,
     696,
     698,
     699,
     699,
     701,
     701,
     701,
     702,
     704,
     706,
     708,
     708,
     708,
     708,
     708,
     709,
     709,
     709,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 3',
   [200,
    700,
    600,
    120,
    [616,
     618,
     620,
     620,
     620,
     621,
     622,
     622,
     623,
     624,
     625,
     626,
     626,
     626,
     626,
     628,
     629,
     631,
     631,
     632,
     632,
     634,
     634,
     634,
     634,
     636,
     636,
     637,
     639,
     639,
     640,
     641,
     641,
     641,
     641,
     641,
     642,
     642,
     642,
     642,
     642,
     644,
     644,
     645,
     645,
     645,
     645,
     647,
     648,
     649,
     649,
     650,
     651,
     653,
     655,
     657,
     657,
     658,
     658,
     659,
     659,
     659,
     660,
     660,
     660,
     661,
     661,
     661,
     661,
     661,
     662,
     663,
     664,
     664,
     665,
     665,
     666,
     666,
     666,
     668,
     669,
     669,
     669,
     669,
     671,
     671,
     671,
     672,
     672,
     674,
     674,
     676,
     676,
     676,
     676,
     676,
     676,
     678,
     678,
     679,
     679,
     681,
     681,
     683,
     683,
     683,
     685,
     686,
     687,
     687,
     688,
     689,
     691,
     692,
     694,
     695,
     697,
     697,
     698,
     698,
     698,
     698,
     700,
     700,
     701,
     702,
     702,
     702,
     703,
     703,
     703,
     703,
     705,
     707,
     707,
     707,
     707,
     708,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700]]],
 [['regression: warming before occupancy',
   [40,
    700,
    600,
    60,
    [680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     680,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700,
     700]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['regression: scenario 32',
   [60,
    700,
    600,
    30,
    [664,
     664,
     666,
     666,
     666,
     666,
     666,
     668,
     670,
     671,
     671,
     672,
     673,
     674,
     674,
     676,
     677,
     677,
     678,
     678,
     678,
     678,
     679,
     679,
     679,
     679,
     681,
     682,
     683,
     684,
     685,
     686,
     687,
     688,
     689,
     689,
     691,
     692,
     692,
     692,
     692,
     693,
     693,
     695,
     695,
     695,
     695,
     695,
     695,
     697,
     697,
     697,
     698,
     699,
     699,
     701,
     702,
     702,
     702,
     702,
     704,
     704,
     705,
     705,
     705,
     707]],
   [700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: steady recovery',
   [30,
    700,
    600,
    120,
    [650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650,
     650]],
   [600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit',
   [200,
    700,
    600,
    30,
    [600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600,
     600]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: fractional minutes',
   [60,
    700,
    600,
    90,
    [655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700,
    700]],
  ['control: lead limit boundary',
   [200,
    700,
    600,
    30,
    [610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610,
     610]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]],
  ['control: scenario 1',
   [200,
    700,
    600,
    120,
    [674,
     676,
     677,
     677,
     678,
     678,
     679,
     679,
     681,
     682,
     684,
     686,
     687,
     687,
     687,
     687,
     687,
     689,
     690,
     692,
     694,
     696,
     697,
     697,
     697,
     698,
     700,
     700,
     702,
     702,
     703,
     703,
     704,
     705,
     707,
     709,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700]],
  ['control: scenario 2',
   [60,
    700,
    600,
    30,
    [690,
     692,
     694,
     695,
     697,
     697,
     697,
     697,
     697,
     697,
     698,
     699,
     699,
     699,
     699,
     700,
     700,
     700,
     700,
     702,
     704,
     705,
     705,
     705,
     706,
     706,
     707,
     709,
     709,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710,
     710]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    700,
    700,
    700,
    700,
    700]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: warming before occupancy[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: steady recovery[600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: lead limit[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700]Passed
control: fractional minutes[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: lead limit boundary[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700]Passed
control: scenario 1[700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: scenario 2[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed
control: scenario 3[600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700][600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700]Passed

SHA-256 / cbf15d867425ed306ce3f9be1592c50880b5ad453c25da9e3a2aac4127899795

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:51:49.039062+00:00.

Case digest / 56383af897ce5f493f97862d17ed91c7f40f8f9aec707d4b839004f463fa4093