FAILURE MAP
← Case archive

FA-92756 / HVAC thermostat control / Open access

Optimal start rounds the required recovery time down · case 01

Recovery starts a minute late whenever the required time is fractional and the space is short of setpoint at occupancy.

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

ROOT CAUSE

Required minutes use floor division.

VERIFIED REPAIR

Round required minutes up.

Unsuccessful approach: Round-to-nearest still starts late for fractions below one half.

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
        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: 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]],
  ['regression: scenario 5',
   [60,
    700,
    600,
    240,
    [639,
     639,
     639,
     639,
     640,
     640,
     640,
     642,
     642,
     642,
     642,
     644,
     646,
     646,
     646,
     648,
     648,
     649,
     650,
     651,
     652,
     652,
     652,
     654,
     654,
     654,
     655,
     655,
     655,
     656,
     656,
     657,
     657,
     658,
     658,
     658,
     659,
     660,
     660,
     661,
     662,
     663,
     665,
     666,
     668,
     669,
     669,
     671,
     671,
     673,
     673,
     675,
     675,
     675,
     676,
     676,
     676,
     677,
     679,
     680,
     680,
     680,
     680,
     682,
     682,
     683]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['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: 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,
    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]]],
 [['regression: scenario 10',
   [45,
    700,
    600,
    90,
    [661,
     663,
     664,
     666,
     666,
     666,
     667,
     668,
     670,
     671,
     671,
     671,
     673,
     674,
     674,
     676,
     676,
     676,
     676,
     676,
     678,
     678,
     678,
     678,
     678,
     678,
     678,
     680,
     681,
     681,
     681,
     682,
     684,
     686,
     688,
     688,
     688,
     689,
     689,
     689,
     689,
     689,
     689,
     690,
     692,
     692,
     694]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['regression: scenario 17',
   [30,
    700,
    600,
    240,
    [650,
     651,
     651,
     651,
     651,
     653,
     654,
     654,
     654,
     654,
     655,
     655,
     655,
     655,
     656,
     657,
     657,
     657,
     659,
     659,
     661,
     662,
     663,
     663,
     663,
     663,
     663,
     663,
     663,
     663,
     664,
     665,
     667]],
   [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]],
  ['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: 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: scenario 15',
   [60,
    700,
    600,
    240,
    [600,
     601,
     601,
     601,
     601,
     601,
     602,
     604,
     606,
     607,
     609,
     611,
     612,
     613,
     615,
     615,
     615,
     615,
     617,
     618,
     618,
     620,
     620,
     621,
     621,
     621,
     621,
     622,
     623,
     624,
     624,
     624,
     624,
     624,
     625,
     625,
     625,
     627,
     629,
     629,
     629,
     629,
     629,
     630,
     630,
     630,
     632,
     632,
     634,
     634,
     636,
     636,
     638,
     638,
     639,
     639,
     641,
     643,
     643,
     643,
     644,
     644,
     645,
     647,
     647,
     649,
     650]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['regression: scenario 37',
   [45,
    700,
    600,
    120,
    [651,
     653,
     653,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     656,
     656,
     658,
     658,
     660,
     660,
     660,
     660,
     660,
     660,
     660,
     661,
     661,
     661,
     663,
     663,
     663,
     663,
     663,
     665,
     665,
     667,
     668,
     668,
     668,
     668,
     669,
     671,
     671,
     673,
     673,
     673,
     673,
     675,
     675,
     677,
     677,
     678,
     680,
     680,
     681,
     681]],
   [600,
    600,
    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,
    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: 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',
   [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]]],
 [['regression: scenario 21',
   [45,
    700,
    600,
    240,
    [638,
     638,
     638,
     638,
     638,
     640,
     641,
     642,
     643,
     644,
     646,
     646,
     648,
     648,
     650,
     651,
     653,
     653,
     653,
     655,
     655,
     655,
     657,
     659,
     659,
     659,
     660,
     660,
     660,
     660,
     660,
     662,
     664,
     665,
     665,
     665,
     666,
     668,
     668,
     668,
     668,
     669,
     671,
     671,
     671,
     672,
     674,
     674,
     674,
     674,
     674]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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: scenario 38',
   [45,
    700,
    600,
    90,
    [662,
     662,
     662,
     662,
     663,
     663,
     663,
     663,
     664,
     664,
     664,
     666,
     667,
     667,
     667,
     668,
     669,
     669,
     670,
     671,
     671,
     672,
     672,
     674,
     674,
     674,
     674,
     676,
     676,
     678,
     679,
     680,
     682,
     682,
     682,
     684,
     684,
     684,
     684,
     684,
     686,
     687,
     687,
     687,
     687,
     687,
     689,
     690,
     690,
     690,
     691,
     693]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['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: 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',
   [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]]],
 [['regression: scenario 17',
   [45,
    700,
    600,
    240,
    [631,
     631,
     631,
     631,
     631,
     631,
     633,
     633,
     634,
     634,
     634,
     635,
     635,
     636,
     637,
     637,
     637,
     637,
     639,
     641,
     641,
     643,
     643,
     645,
     646,
     646,
     646,
     646,
     647,
     647,
     647,
     649,
     649,
     649,
     649,
     650,
     652,
     652,
     652,
     652,
     652,
     653,
     654,
     654,
     655,
     656,
     657,
     657,
     657,
     658,
     658]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['regression: scenario 42',
   [45,
    700,
    600,
    240,
    [601,
     601,
     601,
     601,
     602,
     602,
     602,
     602,
     603,
     603,
     603,
     605,
     606,
     606,
     606,
     606,
     608,
     609,
     610,
     610,
     610,
     611,
     613,
     615,
     617,
     617,
     619,
     619,
     620,
     620,
     621,
     623,
     624,
     625,
     626,
     628,
     628,
     629,
     631,
     633,
     633,
     633,
     635,
     636,
     637,
     639,
     639,
     641]],
   [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: 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: 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',
   [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]]]]
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: 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, 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][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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]Failed
regression: scenario 5[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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]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: 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: 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

SHA-256 / 1b1af57344ddbeab68376ce018b9b5eb9d589c6055cf201ae5ea0e0dd9c39be7

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 not recovering:
            required = round(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: 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]],
  ['regression: scenario 5',
   [60,
    700,
    600,
    240,
    [639,
     639,
     639,
     639,
     640,
     640,
     640,
     642,
     642,
     642,
     642,
     644,
     646,
     646,
     646,
     648,
     648,
     649,
     650,
     651,
     652,
     652,
     652,
     654,
     654,
     654,
     655,
     655,
     655,
     656,
     656,
     657,
     657,
     658,
     658,
     658,
     659,
     660,
     660,
     661,
     662,
     663,
     665,
     666,
     668,
     669,
     669,
     671,
     671,
     673,
     673,
     675,
     675,
     675,
     676,
     676,
     676,
     677,
     679,
     680,
     680,
     680,
     680,
     682,
     682,
     683]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['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: 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,
    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]]],
 [['regression: scenario 10',
   [45,
    700,
    600,
    90,
    [661,
     663,
     664,
     666,
     666,
     666,
     667,
     668,
     670,
     671,
     671,
     671,
     673,
     674,
     674,
     676,
     676,
     676,
     676,
     676,
     678,
     678,
     678,
     678,
     678,
     678,
     678,
     680,
     681,
     681,
     681,
     682,
     684,
     686,
     688,
     688,
     688,
     689,
     689,
     689,
     689,
     689,
     689,
     690,
     692,
     692,
     694]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['regression: scenario 17',
   [30,
    700,
    600,
    240,
    [650,
     651,
     651,
     651,
     651,
     653,
     654,
     654,
     654,
     654,
     655,
     655,
     655,
     655,
     656,
     657,
     657,
     657,
     659,
     659,
     661,
     662,
     663,
     663,
     663,
     663,
     663,
     663,
     663,
     663,
     664,
     665,
     667]],
   [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]],
  ['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: 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: scenario 15',
   [60,
    700,
    600,
    240,
    [600,
     601,
     601,
     601,
     601,
     601,
     602,
     604,
     606,
     607,
     609,
     611,
     612,
     613,
     615,
     615,
     615,
     615,
     617,
     618,
     618,
     620,
     620,
     621,
     621,
     621,
     621,
     622,
     623,
     624,
     624,
     624,
     624,
     624,
     625,
     625,
     625,
     627,
     629,
     629,
     629,
     629,
     629,
     630,
     630,
     630,
     632,
     632,
     634,
     634,
     636,
     636,
     638,
     638,
     639,
     639,
     641,
     643,
     643,
     643,
     644,
     644,
     645,
     647,
     647,
     649,
     650]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['regression: scenario 37',
   [45,
    700,
    600,
    120,
    [651,
     653,
     653,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     656,
     656,
     658,
     658,
     660,
     660,
     660,
     660,
     660,
     660,
     660,
     661,
     661,
     661,
     663,
     663,
     663,
     663,
     663,
     665,
     665,
     667,
     668,
     668,
     668,
     668,
     669,
     671,
     671,
     673,
     673,
     673,
     673,
     675,
     675,
     677,
     677,
     678,
     680,
     680,
     681,
     681]],
   [600,
    600,
    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,
    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: 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',
   [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]]],
 [['regression: scenario 21',
   [45,
    700,
    600,
    240,
    [638,
     638,
     638,
     638,
     638,
     640,
     641,
     642,
     643,
     644,
     646,
     646,
     648,
     648,
     650,
     651,
     653,
     653,
     653,
     655,
     655,
     655,
     657,
     659,
     659,
     659,
     660,
     660,
     660,
     660,
     660,
     662,
     664,
     665,
     665,
     665,
     666,
     668,
     668,
     668,
     668,
     669,
     671,
     671,
     671,
     672,
     674,
     674,
     674,
     674,
     674]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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: scenario 38',
   [45,
    700,
    600,
    90,
    [662,
     662,
     662,
     662,
     663,
     663,
     663,
     663,
     664,
     664,
     664,
     666,
     667,
     667,
     667,
     668,
     669,
     669,
     670,
     671,
     671,
     672,
     672,
     674,
     674,
     674,
     674,
     676,
     676,
     678,
     679,
     680,
     682,
     682,
     682,
     684,
     684,
     684,
     684,
     684,
     686,
     687,
     687,
     687,
     687,
     687,
     689,
     690,
     690,
     690,
     691,
     693]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['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: 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',
   [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]]],
 [['regression: scenario 17',
   [45,
    700,
    600,
    240,
    [631,
     631,
     631,
     631,
     631,
     631,
     633,
     633,
     634,
     634,
     634,
     635,
     635,
     636,
     637,
     637,
     637,
     637,
     639,
     641,
     641,
     643,
     643,
     645,
     646,
     646,
     646,
     646,
     647,
     647,
     647,
     649,
     649,
     649,
     649,
     650,
     652,
     652,
     652,
     652,
     652,
     653,
     654,
     654,
     655,
     656,
     657,
     657,
     657,
     658,
     658]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['regression: scenario 42',
   [45,
    700,
    600,
    240,
    [601,
     601,
     601,
     601,
     602,
     602,
     602,
     602,
     603,
     603,
     603,
     605,
     606,
     606,
     606,
     606,
     608,
     609,
     610,
     610,
     610,
     611,
     613,
     615,
     617,
     617,
     619,
     619,
     620,
     620,
     621,
     623,
     624,
     625,
     626,
     628,
     628,
     629,
     631,
     633,
     633,
     633,
     635,
     636,
     637,
     639,
     639,
     641]],
   [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: 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: 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',
   [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]]]]
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: 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, 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][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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]Failed
regression: scenario 5[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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]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: 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: 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

SHA-256 / 0bd804740a6464f12ab10d82b026ab480d83f57d34344c7248b2ebacc61fc0f8

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: 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]],
  ['regression: scenario 5',
   [60,
    700,
    600,
    240,
    [639,
     639,
     639,
     639,
     640,
     640,
     640,
     642,
     642,
     642,
     642,
     644,
     646,
     646,
     646,
     648,
     648,
     649,
     650,
     651,
     652,
     652,
     652,
     654,
     654,
     654,
     655,
     655,
     655,
     656,
     656,
     657,
     657,
     658,
     658,
     658,
     659,
     660,
     660,
     661,
     662,
     663,
     665,
     666,
     668,
     669,
     669,
     671,
     671,
     673,
     673,
     675,
     675,
     675,
     676,
     676,
     676,
     677,
     679,
     680,
     680,
     680,
     680,
     682,
     682,
     683]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['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: 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,
    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]]],
 [['regression: scenario 10',
   [45,
    700,
    600,
    90,
    [661,
     663,
     664,
     666,
     666,
     666,
     667,
     668,
     670,
     671,
     671,
     671,
     673,
     674,
     674,
     676,
     676,
     676,
     676,
     676,
     678,
     678,
     678,
     678,
     678,
     678,
     678,
     680,
     681,
     681,
     681,
     682,
     684,
     686,
     688,
     688,
     688,
     689,
     689,
     689,
     689,
     689,
     689,
     690,
     692,
     692,
     694]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['regression: scenario 17',
   [30,
    700,
    600,
    240,
    [650,
     651,
     651,
     651,
     651,
     653,
     654,
     654,
     654,
     654,
     655,
     655,
     655,
     655,
     656,
     657,
     657,
     657,
     659,
     659,
     661,
     662,
     663,
     663,
     663,
     663,
     663,
     663,
     663,
     663,
     664,
     665,
     667]],
   [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]],
  ['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: 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: scenario 15',
   [60,
    700,
    600,
    240,
    [600,
     601,
     601,
     601,
     601,
     601,
     602,
     604,
     606,
     607,
     609,
     611,
     612,
     613,
     615,
     615,
     615,
     615,
     617,
     618,
     618,
     620,
     620,
     621,
     621,
     621,
     621,
     622,
     623,
     624,
     624,
     624,
     624,
     624,
     625,
     625,
     625,
     627,
     629,
     629,
     629,
     629,
     629,
     630,
     630,
     630,
     632,
     632,
     634,
     634,
     636,
     636,
     638,
     638,
     639,
     639,
     641,
     643,
     643,
     643,
     644,
     644,
     645,
     647,
     647,
     649,
     650]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['regression: scenario 37',
   [45,
    700,
    600,
    120,
    [651,
     653,
     653,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     655,
     656,
     656,
     658,
     658,
     660,
     660,
     660,
     660,
     660,
     660,
     660,
     661,
     661,
     661,
     663,
     663,
     663,
     663,
     663,
     665,
     665,
     667,
     668,
     668,
     668,
     668,
     669,
     671,
     671,
     673,
     673,
     673,
     673,
     675,
     675,
     677,
     677,
     678,
     680,
     680,
     681,
     681]],
   [600,
    600,
    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,
    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: 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',
   [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]]],
 [['regression: scenario 21',
   [45,
    700,
    600,
    240,
    [638,
     638,
     638,
     638,
     638,
     640,
     641,
     642,
     643,
     644,
     646,
     646,
     648,
     648,
     650,
     651,
     653,
     653,
     653,
     655,
     655,
     655,
     657,
     659,
     659,
     659,
     660,
     660,
     660,
     660,
     660,
     662,
     664,
     665,
     665,
     665,
     666,
     668,
     668,
     668,
     668,
     669,
     671,
     671,
     671,
     672,
     674,
     674,
     674,
     674,
     674]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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: scenario 38',
   [45,
    700,
    600,
    90,
    [662,
     662,
     662,
     662,
     663,
     663,
     663,
     663,
     664,
     664,
     664,
     666,
     667,
     667,
     667,
     668,
     669,
     669,
     670,
     671,
     671,
     672,
     672,
     674,
     674,
     674,
     674,
     676,
     676,
     678,
     679,
     680,
     682,
     682,
     682,
     684,
     684,
     684,
     684,
     684,
     686,
     687,
     687,
     687,
     687,
     687,
     689,
     690,
     690,
     690,
     691,
     693]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['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: 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',
   [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]]],
 [['regression: scenario 17',
   [45,
    700,
    600,
    240,
    [631,
     631,
     631,
     631,
     631,
     631,
     633,
     633,
     634,
     634,
     634,
     635,
     635,
     636,
     637,
     637,
     637,
     637,
     639,
     641,
     641,
     643,
     643,
     645,
     646,
     646,
     646,
     646,
     647,
     647,
     647,
     649,
     649,
     649,
     649,
     650,
     652,
     652,
     652,
     652,
     652,
     653,
     654,
     654,
     655,
     656,
     657,
     657,
     657,
     658,
     658]],
   [600,
    600,
    600,
    600,
    600,
    600,
    600,
    600,
    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]],
  ['regression: scenario 42',
   [45,
    700,
    600,
    240,
    [601,
     601,
     601,
     601,
     602,
     602,
     602,
     602,
     603,
     603,
     603,
     605,
     606,
     606,
     606,
     606,
     608,
     609,
     610,
     610,
     610,
     611,
     613,
     615,
     617,
     617,
     619,
     619,
     620,
     620,
     621,
     623,
     624,
     625,
     626,
     628,
     628,
     629,
     631,
     633,
     633,
     633,
     635,
     636,
     637,
     639,
     639,
     641]],
   [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: 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: 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',
   [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]]]]
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: 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
regression: scenario 5[600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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][600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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]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: 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: 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

SHA-256 / cb21a4be1708ae131d08afe1162e6338e0bb999ef2b9142583fbbefca93d8a26

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:48.781554+00:00.

Case digest / 777866a710fac5557b85d1b7234edc5f4c0b93403f3210d3dabfe457172149f0