示例#1
0
def test_TemperatureSensitivityModel_with_heating_and_cooling():
    initial_params = {
        "base_consumption": -1,
        "heating_slope": 0,
        "cooling_slope": 0,
        "heating_reference_temperature": 55,
        "cooling_reference_temperature": 57,
    }
    param_bounds = {
        "base_consumption": [0,100],
        "heating_slope": [0,100],
        "cooling_slope": [0,100],
        "heating_reference_temperature": [50,60],
        "cooling_reference_temperature": [52,72],
    }
    model = TemperatureSensitivityModel(heating=True,cooling=True)
    model.initial_params = None
    model.param_bounds = None
    model = TemperatureSensitivityModel(True,True,initial_params,param_bounds)

    params = [1,1,60,1,65]
    observed_temps = np.array([[i] for i in range(50,70)])
    usages = model.compute_usage_estimates(params,observed_temps)
    assert_almost_equal(usages[8:18],[3,2,1,1,1,1,1,1,2,3])
    opt_params = model.parameter_optimization(usages, observed_temps)
    assert_almost_equal(params,opt_params,decimal=3)
示例#2
0
def test_model_weather_input_not_np_array():
    model = TemperatureSensitivityModel(heating=False,cooling=False)
    params = [1]
    observed_temps = [[70],[65,60]]
    usages = model.compute_usage_estimates(params,observed_temps)
    assert_almost_equal(usages,[1,2])