./tests/test_onoff.py

./tests/test_onoff.py#

from controllers.onoff import OnOffThermostat

def test_on_below_lower():
    t = OnOffThermostat(setpoint=21.0, deadband=1.0)
    t.state = 0
    assert t.update(20.4) == 1

def test_off_above_upper():
    t = OnOffThermostat(setpoint=21.0, deadband=1.0)
    t.state = 1
    assert t.update(21.6) == 0

def test_hold_inside_band():
    t = OnOffThermostat(setpoint=21.0, deadband=1.0)
    t.state = 1
    assert t.update(21.0) == 1
    t.state = 0
    assert t.update(21.0) == 0

def test_safety_cutoff():
    t = OnOffThermostat(setpoint=21.0, deadband=1.0, safety_high=25.0)
    t.state = 1
    assert t.update(25.0) == 0