FA-92771 / HVAC thermostat control / Open access
Optimal start treats the hourly recovery rate as per minute · case 01
Recovery starts only minutes before occupancy and the space is cold when people arrive.
ROOT CAUSE
The required time divides the deficit by the rate without converting hours to minutes.
VERIFIED REPAIR
Required minutes = deficit * 60 / rate.
Unsuccessful approach: Scaling by 10 instead of 60 confuses tenths with minutes.
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) // 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: 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]],
['regression: 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]],
['regression: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: 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 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 3',
[45,
700,
600,
120,
[619,
619,
619,
620,
620,
620,
620,
620,
620,
620,
620,
622,
622,
622,
623,
623,
625,
627,
627,
628,
629,
629,
629,
629,
630,
631,
631,
631,
632,
633,
635,
635,
636,
636,
638,
639,
640,
640,
641,
641,
641,
641,
643,
643,
643,
643,
643,
643,
644,
646,
646,
646,
648]],
[600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]]],
[['regression: 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]],
['regression: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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 2',
[30,
700,
600,
30,
[633,
633,
633,
633,
633,
634,
634,
635,
636,
638,
639,
641,
641,
641,
641,
643,
645,
647,
647,
648,
648,
648,
650,
650,
650,
652,
652,
652,
653,
655,
657,
658,
658,
659,
659,
659,
659,
659]],
[700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
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 3',
[45,
700,
600,
30,
[638,
638,
638,
638,
638,
639,
641,
643,
644,
644,
645,
645,
646,
646,
646,
646,
646,
648,
649,
649,
649,
650,
650,
650,
651,
653,
653,
655,
656,
656,
656,
657,
659,
659,
659,
659,
659,
659,
659,
659,
660,
661,
662,
662,
662,
663,
663,
664,
666,
666,
668,
668]],
[700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
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: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: 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]],
['regression: 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]],
['regression: 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 2',
[60,
700,
600,
30,
[652,
652,
652,
652,
654,
656,
658,
658,
658,
659,
659,
661,
661,
661,
663,
664,
664,
664,
665,
665,
667,
668,
668,
668,
669,
671,
671,
671,
671,
671,
671,
671,
671,
671,
672,
673,
673,
673,
675,
677,
677,
678,
678,
678,
679,
681,
682,
684,
684,
686,
686,
688,
689,
690,
690,
690,
691,
691,
691,
692,
692,
692,
693,
694]],
[700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 3',
[200,
700,
600,
240,
[637,
637,
638,
638,
638,
639,
639,
640,
641,
643,
643,
645,
645,
645,
645,
647,
648,
650,
651,
653,
654,
654,
656,
656,
656,
657,
657,
658,
660,
662,
663,
663,
663,
663,
664,
665,
667,
667,
669,
671,
671,
672,
673,
674,
675,
675,
676,
678,
678,
680,
680,
682,
682,
684,
685,
687,
689,
690,
691,
691,
693,
695,
695,
695,
696,
696,
697,
697,
697,
697,
697,
699,
699,
701,
701,
703,
703,
703,
703,
704,
705,
705,
705,
705,
705,
705,
705,
705,
706,
708,
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]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
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]]],
[['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: 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]],
['regression: 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]],
['regression: 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: scenario 1',
[200,
700,
600,
60,
[658,
660,
660,
661,
661,
661,
661,
663,
663,
663,
663,
665,
665,
665,
666,
666,
667,
669,
669,
669,
670,
670,
671,
671,
672,
672,
672,
672,
672,
672,
672,
674,
674,
674,
674,
674,
674,
676,
676,
676,
678,
679,
681,
681,
681,
681,
681,
681,
683,
683,
683,
683,
683,
685,
686,
687,
687,
687,
689,
691,
692,
694,
694,
694,
694,
696,
696,
696,
698,
699,
701,
702,
702,
703,
703,
703,
704,
706,
707,
707,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 2',
[60,
700,
600,
30,
[673,
674,
675,
676,
678,
680,
682,
684,
684,
684,
686,
687,
688,
690,
692,
693,
694,
694,
694,
695,
696,
696,
696,
696,
698,
699,
699,
701,
701,
701,
702,
704,
706,
708,
708,
708,
708,
708,
709,
709,
709,
709,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 3',
[200,
700,
600,
120,
[616,
618,
620,
620,
620,
621,
622,
622,
623,
624,
625,
626,
626,
626,
626,
628,
629,
631,
631,
632,
632,
634,
634,
634,
634,
636,
636,
637,
639,
639,
640,
641,
641,
641,
641,
641,
642,
642,
642,
642,
642,
644,
644,
645,
645,
645,
645,
647,
648,
649,
649,
650,
651,
653,
655,
657,
657,
658,
658,
659,
659,
659,
660,
660,
660,
661,
661,
661,
661,
661,
662,
663,
664,
664,
665,
665,
666,
666,
666,
668,
669,
669,
669,
669,
671,
671,
671,
672,
672,
674,
674,
676,
676,
676,
676,
676,
676,
678,
678,
679,
679,
681,
681,
683,
683,
683,
685,
686,
687,
687,
688,
689,
691,
692,
694,
695,
697,
697,
698,
698,
698,
698,
700,
700,
701,
702,
702,
702,
703,
703,
703,
703,
705,
707,
707,
707,
707,
708,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700]]],
[['regression: 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]],
['regression: scenario 3',
[60,
700,
600,
240,
[621,
623,
623,
625,
626,
628,
630,
631,
633,
635,
635,
637,
639,
639,
640,
640,
642,
644,
645,
646,
648,
648,
650,
652,
654,
654,
654,
655,
656,
656,
656,
658,
658,
658,
658,
658,
659,
659,
659,
660,
662,
663,
663,
665,
665,
667,
668,
669,
671,
671,
671,
673,
674,
676,
678,
678,
678,
679,
681,
682,
683,
685,
685,
686,
687,
687,
687]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
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]],
['regression: 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]],
['regression: 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]],
['regression: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 1',
[200,
700,
600,
120,
[674,
676,
677,
677,
678,
678,
679,
679,
681,
682,
684,
686,
687,
687,
687,
687,
687,
689,
690,
692,
694,
696,
697,
697,
697,
698,
700,
700,
702,
702,
703,
703,
704,
705,
707,
709,
709,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700]],
['control: scenario 2',
[60,
700,
600,
30,
[690,
692,
694,
695,
697,
697,
697,
697,
697,
697,
698,
699,
699,
699,
699,
700,
700,
700,
700,
702,
704,
705,
705,
705,
706,
706,
707,
709,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700]]]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: steady recovery | [600, 600, 600, 600, 600, 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] | [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] | Failed |
| regression: lead limit | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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] | Failed |
| regression: 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, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600] | [600, 600, 600, 600, 600, 600, 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] | Failed |
| regression: warming before occupancy | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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] | [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: lead limit boundary | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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] | Failed |
| regression: scenario 1 | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 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 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, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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 3 | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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] | [600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700] | Failed |
SHA-256 / 92b05169be88ec3f2e0b11c9819e6add728a91e72847f97ebdb6cd6fba220924
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 = -(-max(0, need) * 10 // 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: 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]],
['regression: 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]],
['regression: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: 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 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 3',
[45,
700,
600,
120,
[619,
619,
619,
620,
620,
620,
620,
620,
620,
620,
620,
622,
622,
622,
623,
623,
625,
627,
627,
628,
629,
629,
629,
629,
630,
631,
631,
631,
632,
633,
635,
635,
636,
636,
638,
639,
640,
640,
641,
641,
641,
641,
643,
643,
643,
643,
643,
643,
644,
646,
646,
646,
648]],
[600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]]],
[['regression: 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]],
['regression: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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 2',
[30,
700,
600,
30,
[633,
633,
633,
633,
633,
634,
634,
635,
636,
638,
639,
641,
641,
641,
641,
643,
645,
647,
647,
648,
648,
648,
650,
650,
650,
652,
652,
652,
653,
655,
657,
658,
658,
659,
659,
659,
659,
659]],
[700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
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 3',
[45,
700,
600,
30,
[638,
638,
638,
638,
638,
639,
641,
643,
644,
644,
645,
645,
646,
646,
646,
646,
646,
648,
649,
649,
649,
650,
650,
650,
651,
653,
653,
655,
656,
656,
656,
657,
659,
659,
659,
659,
659,
659,
659,
659,
660,
661,
662,
662,
662,
663,
663,
664,
666,
666,
668,
668]],
[700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
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: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: 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]],
['regression: 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]],
['regression: 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 2',
[60,
700,
600,
30,
[652,
652,
652,
652,
654,
656,
658,
658,
658,
659,
659,
661,
661,
661,
663,
664,
664,
664,
665,
665,
667,
668,
668,
668,
669,
671,
671,
671,
671,
671,
671,
671,
671,
671,
672,
673,
673,
673,
675,
677,
677,
678,
678,
678,
679,
681,
682,
684,
684,
686,
686,
688,
689,
690,
690,
690,
691,
691,
691,
692,
692,
692,
693,
694]],
[700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 3',
[200,
700,
600,
240,
[637,
637,
638,
638,
638,
639,
639,
640,
641,
643,
643,
645,
645,
645,
645,
647,
648,
650,
651,
653,
654,
654,
656,
656,
656,
657,
657,
658,
660,
662,
663,
663,
663,
663,
664,
665,
667,
667,
669,
671,
671,
672,
673,
674,
675,
675,
676,
678,
678,
680,
680,
682,
682,
684,
685,
687,
689,
690,
691,
691,
693,
695,
695,
695,
696,
696,
697,
697,
697,
697,
697,
699,
699,
701,
701,
703,
703,
703,
703,
704,
705,
705,
705,
705,
705,
705,
705,
705,
706,
708,
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]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
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]]],
[['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: 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]],
['regression: 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]],
['regression: 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: scenario 1',
[200,
700,
600,
60,
[658,
660,
660,
661,
661,
661,
661,
663,
663,
663,
663,
665,
665,
665,
666,
666,
667,
669,
669,
669,
670,
670,
671,
671,
672,
672,
672,
672,
672,
672,
672,
674,
674,
674,
674,
674,
674,
676,
676,
676,
678,
679,
681,
681,
681,
681,
681,
681,
683,
683,
683,
683,
683,
685,
686,
687,
687,
687,
689,
691,
692,
694,
694,
694,
694,
696,
696,
696,
698,
699,
701,
702,
702,
703,
703,
703,
704,
706,
707,
707,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 2',
[60,
700,
600,
30,
[673,
674,
675,
676,
678,
680,
682,
684,
684,
684,
686,
687,
688,
690,
692,
693,
694,
694,
694,
695,
696,
696,
696,
696,
698,
699,
699,
701,
701,
701,
702,
704,
706,
708,
708,
708,
708,
708,
709,
709,
709,
709,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 3',
[200,
700,
600,
120,
[616,
618,
620,
620,
620,
621,
622,
622,
623,
624,
625,
626,
626,
626,
626,
628,
629,
631,
631,
632,
632,
634,
634,
634,
634,
636,
636,
637,
639,
639,
640,
641,
641,
641,
641,
641,
642,
642,
642,
642,
642,
644,
644,
645,
645,
645,
645,
647,
648,
649,
649,
650,
651,
653,
655,
657,
657,
658,
658,
659,
659,
659,
660,
660,
660,
661,
661,
661,
661,
661,
662,
663,
664,
664,
665,
665,
666,
666,
666,
668,
669,
669,
669,
669,
671,
671,
671,
672,
672,
674,
674,
676,
676,
676,
676,
676,
676,
678,
678,
679,
679,
681,
681,
683,
683,
683,
685,
686,
687,
687,
688,
689,
691,
692,
694,
695,
697,
697,
698,
698,
698,
698,
700,
700,
701,
702,
702,
702,
703,
703,
703,
703,
705,
707,
707,
707,
707,
708,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700]]],
[['regression: 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]],
['regression: scenario 3',
[60,
700,
600,
240,
[621,
623,
623,
625,
626,
628,
630,
631,
633,
635,
635,
637,
639,
639,
640,
640,
642,
644,
645,
646,
648,
648,
650,
652,
654,
654,
654,
655,
656,
656,
656,
658,
658,
658,
658,
658,
659,
659,
659,
660,
662,
663,
663,
665,
665,
667,
668,
669,
671,
671,
671,
673,
674,
676,
678,
678,
678,
679,
681,
682,
683,
685,
685,
686,
687,
687,
687]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
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]],
['regression: 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]],
['regression: 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]],
['regression: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 1',
[200,
700,
600,
120,
[674,
676,
677,
677,
678,
678,
679,
679,
681,
682,
684,
686,
687,
687,
687,
687,
687,
689,
690,
692,
694,
696,
697,
697,
697,
698,
700,
700,
702,
702,
703,
703,
704,
705,
707,
709,
709,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700]],
['control: scenario 2',
[60,
700,
600,
30,
[690,
692,
694,
695,
697,
697,
697,
697,
697,
697,
698,
699,
699,
699,
699,
700,
700,
700,
700,
702,
704,
705,
705,
705,
706,
706,
707,
709,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700]]]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: steady recovery | [600, 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, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 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: lead limit | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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] | Failed |
| regression: 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, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600] | [600, 600, 600, 600, 600, 600, 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] | Failed |
| regression: warming before occupancy | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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] | [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: lead limit boundary | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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] | Failed |
| regression: scenario 1 | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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] | [700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 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 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, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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 3 | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 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, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 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 |
SHA-256 / a03328efdd6a104a0859f4090ab2ceedddbf4eb672329b36e806d67a6d605647
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: 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]],
['regression: 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]],
['regression: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: 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 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 3',
[45,
700,
600,
120,
[619,
619,
619,
620,
620,
620,
620,
620,
620,
620,
620,
622,
622,
622,
623,
623,
625,
627,
627,
628,
629,
629,
629,
629,
630,
631,
631,
631,
632,
633,
635,
635,
636,
636,
638,
639,
640,
640,
641,
641,
641,
641,
643,
643,
643,
643,
643,
643,
644,
646,
646,
646,
648]],
[600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]]],
[['regression: 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]],
['regression: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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 2',
[30,
700,
600,
30,
[633,
633,
633,
633,
633,
634,
634,
635,
636,
638,
639,
641,
641,
641,
641,
643,
645,
647,
647,
648,
648,
648,
650,
650,
650,
652,
652,
652,
653,
655,
657,
658,
658,
659,
659,
659,
659,
659]],
[700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
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 3',
[45,
700,
600,
30,
[638,
638,
638,
638,
638,
639,
641,
643,
644,
644,
645,
645,
646,
646,
646,
646,
646,
648,
649,
649,
649,
650,
650,
650,
651,
653,
653,
655,
656,
656,
656,
657,
659,
659,
659,
659,
659,
659,
659,
659,
660,
661,
662,
662,
662,
663,
663,
664,
666,
666,
668,
668]],
[700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
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: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: 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]],
['regression: 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]],
['regression: 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 2',
[60,
700,
600,
30,
[652,
652,
652,
652,
654,
656,
658,
658,
658,
659,
659,
661,
661,
661,
663,
664,
664,
664,
665,
665,
667,
668,
668,
668,
669,
671,
671,
671,
671,
671,
671,
671,
671,
671,
672,
673,
673,
673,
675,
677,
677,
678,
678,
678,
679,
681,
682,
684,
684,
686,
686,
688,
689,
690,
690,
690,
691,
691,
691,
692,
692,
692,
693,
694]],
[700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 3',
[200,
700,
600,
240,
[637,
637,
638,
638,
638,
639,
639,
640,
641,
643,
643,
645,
645,
645,
645,
647,
648,
650,
651,
653,
654,
654,
656,
656,
656,
657,
657,
658,
660,
662,
663,
663,
663,
663,
664,
665,
667,
667,
669,
671,
671,
672,
673,
674,
675,
675,
676,
678,
678,
680,
680,
682,
682,
684,
685,
687,
689,
690,
691,
691,
693,
695,
695,
695,
696,
696,
697,
697,
697,
697,
697,
699,
699,
701,
701,
703,
703,
703,
703,
704,
705,
705,
705,
705,
705,
705,
705,
705,
706,
708,
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]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
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]]],
[['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: 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]],
['regression: 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]],
['regression: 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]],
['regression: 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: scenario 1',
[200,
700,
600,
60,
[658,
660,
660,
661,
661,
661,
661,
663,
663,
663,
663,
665,
665,
665,
666,
666,
667,
669,
669,
669,
670,
670,
671,
671,
672,
672,
672,
672,
672,
672,
672,
674,
674,
674,
674,
674,
674,
676,
676,
676,
678,
679,
681,
681,
681,
681,
681,
681,
683,
683,
683,
683,
683,
685,
686,
687,
687,
687,
689,
691,
692,
694,
694,
694,
694,
696,
696,
696,
698,
699,
701,
702,
702,
703,
703,
703,
704,
706,
707,
707,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 2',
[60,
700,
600,
30,
[673,
674,
675,
676,
678,
680,
682,
684,
684,
684,
686,
687,
688,
690,
692,
693,
694,
694,
694,
695,
696,
696,
696,
696,
698,
699,
699,
701,
701,
701,
702,
704,
706,
708,
708,
708,
708,
708,
709,
709,
709,
709,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 3',
[200,
700,
600,
120,
[616,
618,
620,
620,
620,
621,
622,
622,
623,
624,
625,
626,
626,
626,
626,
628,
629,
631,
631,
632,
632,
634,
634,
634,
634,
636,
636,
637,
639,
639,
640,
641,
641,
641,
641,
641,
642,
642,
642,
642,
642,
644,
644,
645,
645,
645,
645,
647,
648,
649,
649,
650,
651,
653,
655,
657,
657,
658,
658,
659,
659,
659,
660,
660,
660,
661,
661,
661,
661,
661,
662,
663,
664,
664,
665,
665,
666,
666,
666,
668,
669,
669,
669,
669,
671,
671,
671,
672,
672,
674,
674,
676,
676,
676,
676,
676,
676,
678,
678,
679,
679,
681,
681,
683,
683,
683,
685,
686,
687,
687,
688,
689,
691,
692,
694,
695,
697,
697,
698,
698,
698,
698,
700,
700,
701,
702,
702,
702,
703,
703,
703,
703,
705,
707,
707,
707,
707,
708,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700]]],
[['regression: 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]],
['regression: scenario 3',
[60,
700,
600,
240,
[621,
623,
623,
625,
626,
628,
630,
631,
633,
635,
635,
637,
639,
639,
640,
640,
642,
644,
645,
646,
648,
648,
650,
652,
654,
654,
654,
655,
656,
656,
656,
658,
658,
658,
658,
658,
659,
659,
659,
660,
662,
663,
663,
665,
665,
667,
668,
669,
671,
671,
671,
673,
674,
676,
678,
678,
678,
679,
681,
682,
683,
685,
685,
686,
687,
687,
687]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
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]],
['regression: 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]],
['regression: 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]],
['regression: fractional minutes',
[60,
700,
600,
90,
[655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655,
655]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['regression: warming before occupancy',
[40,
700,
600,
60,
[680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
680,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700,
700]],
['control: scenario 1',
[200,
700,
600,
120,
[674,
676,
677,
677,
678,
678,
679,
679,
681,
682,
684,
686,
687,
687,
687,
687,
687,
689,
690,
692,
694,
696,
697,
697,
697,
698,
700,
700,
702,
702,
703,
703,
704,
705,
707,
709,
709,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700]],
['control: scenario 2',
[60,
700,
600,
30,
[690,
692,
694,
695,
697,
697,
697,
697,
697,
697,
698,
699,
699,
699,
699,
700,
700,
700,
700,
702,
704,
705,
705,
705,
706,
706,
707,
709,
709,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710,
710]],
[600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
600,
700,
700,
700,
700,
700]]]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: 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 |
| regression: 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 |
| regression: 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 |
| regression: warming before occupancy | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700] | [600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700] | Passed |
| regression: 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 |
| regression: 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 |
| 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 3 | [600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700] | [600, 600, 600, 600, 600, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700, 700] | Passed |
SHA-256 / a683184ac2a755f346645e537a9387d4ace632f018a4686673bafd78226b952c
Verification & scope
A deterministic bounded teaching model of one thermostat or HVAC controller decision evaluated per sample. Temperatures are integer tenths of a degree Fahrenheit unless stated otherwise. The contract is a stipulated toy convention, not a claim of conformance to any manufacturer, ASHRAE guideline or code. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:51:49.053469+00:00.
Case digest / e4b15705f778928872c5b62815280bf643f29f013fdc1b8e7e9b668968497175