FAILURE MAP
← Case archive

FA-92586 / HVAC thermostat control / Open access

Circulation starts one minute too late to meet its hourly minimum · case 01

Each hour ends with one fan minute less than the circulate requirement.

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

ROOT CAUSE

The start test uses remaining requirement > remaining minutes.

VERIFIED REPAIR

Start when the remaining requirement equals the remaining minutes (>=).

Unsuccessful approach: Comparing against 59 minus the minute offset starts a minute too early and over-runs.

Case contract

Thermostat G (blower) output per minute; samples are the equipment call per minute (None, heat or cool). Cooling runs the fan immediately and keeps it on 2 minutes after the call ends. Heating starts the fan only from the second minute of a heat call (heat exchanger warm-up) and, if the fan had started, keeps it on 3 minutes after the call. Fan mode on forces the fan on. Circulate mode ensures at least 20 fan minutes per clock hour (minutes 0-59, 60-119, ...), counting all fan minutes, by running the fan once the remaining minutes in the hour equal the remaining requirement. Return the fan state 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(mode, samples):
    fan_after = 0
    heat_run = 0
    ran = 0
    out = []
    for minute, call in enumerate(samples):
        if minute % 60 == 0:
            ran = 0
        if call == 'cool':
            fan = True
            fan_after = 2
            heat_run = 0
        elif call == 'heat':
            heat_run += 1
            fan = heat_run > 1
            fan_after = 3 if fan else 0
        else:
            heat_run = 0
            fan = fan_after > 0
            if fan_after > 0:
                fan_after -= 1
        if mode == 'on':
            fan = True
        elif mode == 'circ' and not fan and 20 - ran > 60 - minute % 60:
            fan = True
        if fan:
            ran += 1
        out.append(fan)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 40',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['circ',
    [None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False]],
  ['control: scenario 2',
   ['on', [None, None, None, None, None, None, None, None, None, None, None, None]],
   [True, True, True, True, True, True, True, True, True, True, True, True]],
  ['control: scenario 3',
   ['on',
    [None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat']],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]]],
 [['regression: scenario 24',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 32',
   ['circ',
    [None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['on',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: scenario 2',
   ['on',
    ['cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]]],
 [['regression: scenario 6',
   ['circ',
    ['cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 12',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['auto',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: scenario 2',
   ['on',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]]],
 [['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 6',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     'cool',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'heat',
     'cool',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    True,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False]],
  ['control: scenario 2',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False]],
  ['control: scenario 3',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False]]],
 [['regression: scenario 29',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False]],
  ['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['auto',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: scenario 2',
   ['auto', [None, None, None, None, None, None, None, None, None, None, None, None]],
   [False, False, False, False, False, False, False, False, False, False, False, False]],
  ['control: scenario 3',
   ['auto', [None, None, None, None, None, None, None, None, None, None, None, None, None]],
   [False, False, False, False, False, False, False, False, False, False, False, False, False]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: circulate fills hour[False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True][False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True]Failed
regression: scenario 40[False, False, False, False, False, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, False, False, False, False, False, True, True, True, True, True, True, True, False, False][False, False, False, False, False, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, False, False, False, False, True, True, True, True, True, True, True, True, False, False]Failed
control: cool and heat purge[True, True, True, True, False, False, True, True, True, True, True, False][True, True, True, True, False, False, True, True, True, True, True, False]Passed
control: heat right after cool[True, False, True, True, True, True, False][True, False, True, True, True, True, False]Passed
control: short heat call[False, False, False, False, True, True, True, True, False][False, False, False, False, True, True, True, True, False]Passed
control: scenario 1[False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False][False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False]Passed
control: scenario 2[True, True, True, True, True, True, True, True, True, True, True, True][True, True, True, True, True, True, True, True, True, True, True, True]Passed
control: scenario 3[True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True][True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]Passed

SHA-256 / d2b40f5c34aecfb5594dbfb8dee8c3680f69620438eb2112864b421c7b3ef7fb

2 / The unsuccessful fix

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

N = 1
observations = []
def solve(mode, samples):
    fan_after = 0
    heat_run = 0
    ran = 0
    out = []
    for minute, call in enumerate(samples):
        if minute % 60 == 0:
            ran = 0
        if call == 'cool':
            fan = True
            fan_after = 2
            heat_run = 0
        elif call == 'heat':
            heat_run += 1
            fan = heat_run > 1
            fan_after = 3 if fan else 0
        else:
            heat_run = 0
            fan = fan_after > 0
            if fan_after > 0:
                fan_after -= 1
        if mode == 'on':
            fan = True
        elif mode == 'circ' and not fan and 20 - ran >= 59 - minute % 60:
            fan = True
        if fan:
            ran += 1
        out.append(fan)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 40',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['circ',
    [None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False]],
  ['control: scenario 2',
   ['on', [None, None, None, None, None, None, None, None, None, None, None, None]],
   [True, True, True, True, True, True, True, True, True, True, True, True]],
  ['control: scenario 3',
   ['on',
    [None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat']],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]]],
 [['regression: scenario 24',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 32',
   ['circ',
    [None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['on',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: scenario 2',
   ['on',
    ['cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]]],
 [['regression: scenario 6',
   ['circ',
    ['cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 12',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['auto',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: scenario 2',
   ['on',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]]],
 [['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 6',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     'cool',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'heat',
     'cool',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    True,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False]],
  ['control: scenario 2',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False]],
  ['control: scenario 3',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False]]],
 [['regression: scenario 29',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False]],
  ['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['auto',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: scenario 2',
   ['auto', [None, None, None, None, None, None, None, None, None, None, None, None]],
   [False, False, False, False, False, False, False, False, False, False, False, False]],
  ['control: scenario 3',
   ['auto', [None, None, None, None, None, None, None, None, None, None, None, None, None]],
   [False, False, False, False, False, False, False, False, False, False, False, False, False]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: circulate fills hour[False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True][False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True]Failed
regression: scenario 40[False, False, False, False, False, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, False, False, False, True, True, True, True, True, True, True, True, True, False, False][False, False, False, False, False, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, False, False, False, False, True, True, True, True, True, True, True, True, False, False]Failed
control: cool and heat purge[True, True, True, True, False, False, True, True, True, True, True, False][True, True, True, True, False, False, True, True, True, True, True, False]Passed
control: heat right after cool[True, False, True, True, True, True, False][True, False, True, True, True, True, False]Passed
control: short heat call[False, False, False, False, True, True, True, True, False][False, False, False, False, True, True, True, True, False]Passed
control: scenario 1[False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False][False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False]Passed
control: scenario 2[True, True, True, True, True, True, True, True, True, True, True, True][True, True, True, True, True, True, True, True, True, True, True, True]Passed
control: scenario 3[True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True][True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]Passed

SHA-256 / ffd88c3011d8a0bcbd524f22745d2b1fe323c5d6f9b157bac4aa0849f98d453a

3 / The verified repair

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

N = 1
observations = []
def solve(mode, samples):
    fan_after = 0
    heat_run = 0
    ran = 0
    out = []
    for minute, call in enumerate(samples):
        if minute % 60 == 0:
            ran = 0
        if call == 'cool':
            fan = True
            fan_after = 2
            heat_run = 0
        elif call == 'heat':
            heat_run += 1
            fan = heat_run > 1
            fan_after = 3 if fan else 0
        else:
            heat_run = 0
            fan = fan_after > 0
            if fan_after > 0:
                fan_after -= 1
        if mode == 'on':
            fan = True
        elif mode == 'circ' and not fan and 20 - ran >= 60 - minute % 60:
            fan = True
        if fan:
            ran += 1
        out.append(fan)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 40',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['circ',
    [None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False]],
  ['control: scenario 2',
   ['on', [None, None, None, None, None, None, None, None, None, None, None, None]],
   [True, True, True, True, True, True, True, True, True, True, True, True]],
  ['control: scenario 3',
   ['on',
    [None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat']],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]]],
 [['regression: scenario 24',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 32',
   ['circ',
    [None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['on',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: scenario 2',
   ['on',
    ['cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]]],
 [['regression: scenario 6',
   ['circ',
    ['cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 12',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['auto',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: scenario 2',
   ['on',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None]],
   [True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]]],
 [['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 6',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     'cool',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'heat',
     'cool',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    True,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False]],
  ['control: scenario 2',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False]],
  ['control: scenario 3',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False]]],
 [['regression: scenario 29',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False]],
  ['regression: circulate fills hour',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: cool and heat purge',
   ['auto', ['cool', 'cool', None, None, None, 'heat', 'heat', 'heat', None, None, None, None]],
   [True, True, True, True, False, False, True, True, True, True, True, False]],
  ['control: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, False]],
  ['control: short heat call',
   ['auto', ['heat', None, None, 'heat', 'heat', None, None, None, None]],
   [False, False, False, False, True, True, True, True, False]],
  ['control: scenario 1',
   ['auto',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['control: scenario 2',
   ['auto', [None, None, None, None, None, None, None, None, None, None, None, None]],
   [False, False, False, False, False, False, False, False, False, False, False, False]],
  ['control: scenario 3',
   ['auto', [None, None, None, None, None, None, None, None, None, None, None, None, None]],
   [False, False, False, False, False, False, False, False, False, False, False, False, False]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: circulate fills hour[False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True][False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True]Passed
regression: scenario 40[False, False, False, False, False, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, False, False, False, False, True, True, True, True, True, True, True, True, False, False][False, False, False, False, False, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, False, False, False, False, False, True, True, True, True, True, True, True, True, False, False]Passed
control: cool and heat purge[True, True, True, True, False, False, True, True, True, True, True, False][True, True, True, True, False, False, True, True, True, True, True, False]Passed
control: heat right after cool[True, False, True, True, True, True, False][True, False, True, True, True, True, False]Passed
control: short heat call[False, False, False, False, True, True, True, True, False][False, False, False, False, True, True, True, True, False]Passed
control: scenario 1[False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False][False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, True, True, True, True, True, True, False, False, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, False, False, False, False, False]Passed
control: scenario 2[True, True, True, True, True, True, True, True, True, True, True, True][True, True, True, True, True, True, True, True, True, True, True, True]Passed
control: scenario 3[True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True][True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True, True]Passed

SHA-256 / 677a84bbaa417e35c4ddd4ff70ffd3d4a7d557387da66696aa4d7550b9b9f088

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

Case digest / eab7fa6317a4348d74c25634b81e68a1969a9085fde589ef4302c7a7d5c3f3eb