FAILURE MAP
← Case archive

FA-92576 / HVAC thermostat control / Open access

Heat warm-up count survives an intervening cooling call · case 01

A heat call immediately following cooling starts the blower in its first minute.

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

ROOT CAUSE

The cooling branch does not clear the heat-run counter.

VERIFIED REPAIR

Clear the heat-run counter whenever the call is not heat.

Unsuccessful approach: Setting the counter to one during cooling makes the next heat call skip warm-up.

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
        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: scenario 26',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    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,
    False,
    True,
    True]],
  ['regression: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, 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: 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: 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 10',
   ['circ',
    ['heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     None,
     None,
     None,
     None,
     None]],
   [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,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    False,
    False]],
  ['regression: scenario 8',
   ['circ',
    [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',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     '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,
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat']],
   [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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    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: 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: 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 36',
   ['circ',
    ['cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat']],
   [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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    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,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 5',
   ['circ',
    [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',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     '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,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     '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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    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,
    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]],
  ['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: 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: 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: scenario 38',
   ['auto',
    [None,
     None,
     None,
     None,
     'heat',
     None,
     None,
     None,
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True]],
  ['regression: scenario 12',
   ['circ',
    [None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool']],
   [False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    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: 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: 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]],
  ['regression: 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]]],
 [['regression: scenario 34',
   ['auto',
    [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',
     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',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     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,
    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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False]],
  ['regression: scenario 18',
   ['auto',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     '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',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    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,
    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: 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: 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]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: scenario 26[False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, False, False, False, True, True, True, True, True, True, True, True, 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][False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, False, False, False, True, True, True, True, True, True, True, True, 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, False, True, True]Failed
regression: heat right after cool[True, False, True, True, True, True, False][True, False, True, True, True, True, 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: 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
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 / 31d548e40fb6dd145e8b7e0c505515aaaf3f899643c0c4f85a29ef0a31aa9208

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 = 1
        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: scenario 26',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    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,
    False,
    True,
    True]],
  ['regression: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, 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: 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: 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 10',
   ['circ',
    ['heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     None,
     None,
     None,
     None,
     None]],
   [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,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    False,
    False]],
  ['regression: scenario 8',
   ['circ',
    [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',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     '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,
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat']],
   [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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    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: 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: 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 36',
   ['circ',
    ['cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat']],
   [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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    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,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 5',
   ['circ',
    [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',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     '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,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     '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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    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,
    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]],
  ['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: 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: 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: scenario 38',
   ['auto',
    [None,
     None,
     None,
     None,
     'heat',
     None,
     None,
     None,
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True]],
  ['regression: scenario 12',
   ['circ',
    [None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool']],
   [False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    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: 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: 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]],
  ['regression: 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]]],
 [['regression: scenario 34',
   ['auto',
    [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',
     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',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     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,
    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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False]],
  ['regression: scenario 18',
   ['auto',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     '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',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    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,
    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: 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: 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]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: scenario 26[False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, 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, True, True, True, True, True, True, True][False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, False, False, False, True, True, True, True, True, True, True, True, 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, False, True, True]Failed
regression: heat right after cool[True, True, True, True, True, True, False][True, False, True, True, True, True, 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: 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
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 / cf66adc517eb18039cd9bdd4d1c7795b750975a25ead41e5b43421890c373633

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: scenario 26',
   ['circ',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     None]],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    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,
    False,
    True,
    True]],
  ['regression: heat right after cool',
   ['auto', ['cool', 'heat', 'heat', None, None, None, None]],
   [True, False, True, True, True, True, 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: 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: 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 10',
   ['circ',
    ['heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     None,
     None,
     None,
     None,
     None]],
   [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,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    False,
    False]],
  ['regression: scenario 8',
   ['circ',
    [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',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     '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,
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat']],
   [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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    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: 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: 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 36',
   ['circ',
    ['cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat']],
   [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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    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,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True]],
  ['regression: scenario 5',
   ['circ',
    [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',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     '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,
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     '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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    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,
    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]],
  ['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: 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: 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: scenario 38',
   ['auto',
    [None,
     None,
     None,
     None,
     'heat',
     None,
     None,
     None,
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True]],
  ['regression: scenario 12',
   ['circ',
    [None,
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool']],
   [False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    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: 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: 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]],
  ['regression: 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]]],
 [['regression: scenario 34',
   ['auto',
    [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',
     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',
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     None,
     None,
     None,
     None,
     None,
     None,
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'cool',
     'heat',
     'heat',
     'heat',
     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,
    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,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False]],
  ['regression: scenario 18',
   ['auto',
    [None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     None,
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool',
     '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',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'heat',
     'cool',
     'cool']],
   [False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    True,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    False,
    True,
    True,
    True,
    True,
    True,
    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,
    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: 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: 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]]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
regression: scenario 26[False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, False, False, False, True, True, True, True, True, True, True, True, 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, False, True, True][False, False, False, False, False, False, False, False, False, False, False, False, False, True, True, True, True, True, False, False, False, True, True, True, True, True, True, True, True, 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, False, True, True]Passed
regression: heat right after cool[True, False, True, True, True, True, False][True, False, True, True, True, True, 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: 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
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 / 4072bf0c846a84f1a341b0761b570ec7a1838170fa4dd70a51215a3c0892e60f

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

Case digest / eb90f24cf789d1211252cbdf1c0b36550ceca198eb29814f4fe8d2c54ae8191e