Ejemplo n.º 1
0
def test_metered_savings_cdd_hdd_no_params(baseline_model_daily,
                                           reporting_meter_data_daily,
                                           reporting_temperature_data):
    baseline_model_daily.model.model_params = None
    with pytest.raises(MissingModelParameterError):
        metered_savings(baseline_model_daily, reporting_meter_data_daily,
                        reporting_temperature_data)
Ejemplo n.º 2
0
def test_metered_savings_cdd_hdd_billing_single_record_baseline_data(
    baseline_model_billing_single_record_baseline_data,
    reporting_meter_data_billing,
    reporting_temperature_data,
):

    results, error_bands = metered_savings(
        baseline_model_billing_single_record_baseline_data,
        reporting_meter_data_billing,
        reporting_temperature_data,
    )
    """
Ejemplo n.º 3
0
def test_metered_savings_cdd_hdd_hourly(baseline_model_hourly,
                                        reporting_meter_data_hourly,
                                        reporting_temperature_data):

    results, error_bands = metered_savings(baseline_model_hourly,
                                           reporting_meter_data_hourly,
                                           reporting_temperature_data)
    assert list(results.columns) == [
        "reporting_observed",
        "counterfactual_usage",
        "metered_savings",
    ]
    assert round(results.metered_savings.sum(), 2) == -403.7
    assert error_bands is None
Ejemplo n.º 4
0
def test_metered_savings_cdd_hdd_daily_hourly_degree_days(
        baseline_model_daily, reporting_meter_data_daily,
        reporting_temperature_data):

    results, error_bands = metered_savings(baseline_model_daily,
                                           reporting_meter_data_daily,
                                           reporting_temperature_data)
    assert list(results.columns) == [
        "reporting_observed",
        "counterfactual_usage",
        "metered_savings",
    ]
    assert round(results.metered_savings.sum(), 2) == 1571.28
    assert round(error_bands["FSU Error Band"], 2) == 601.52
Ejemplo n.º 5
0
def test_metered_savings_cdd_hdd_billing_single_record_reporting_data(
        baseline_model_billing, reporting_meter_data_billing,
        reporting_temperature_data):

    results, error_bands = metered_savings(
        baseline_model_billing,
        reporting_meter_data_billing[:1],
        reporting_temperature_data,
    )
    assert list(results.columns) == [
        "reporting_observed",
        "counterfactual_usage",
        "metered_savings",
    ]
    assert round(results.metered_savings.sum(), 2) == 0.0
    assert error_bands is None
Ejemplo n.º 6
0
def test_metered_savings_model_single_record(
    baseline_model_billing_single_record,
    reporting_meter_data_billing,
    reporting_temperature_data,
):

    assert pd.isnull(baseline_model_billing_single_record.totals_metrics.autocorr_resid)

    # simulating deserialization
    baseline_model_billing_single_record.totals_metrics.autocorr_resid = None

    results, error_bands = metered_savings(
        baseline_model_billing_single_record,
        reporting_meter_data_billing,
        reporting_temperature_data,
    )
    assert error_bands is None
Ejemplo n.º 7
0
def test_metered_savings_cdd_hdd_daily(baseline_model_daily,
                                       reporting_meter_data_daily,
                                       reporting_temperature_data):

    results, error_bands = metered_savings(baseline_model_daily,
                                           reporting_meter_data_daily,
                                           reporting_temperature_data)
    assert list(results.columns) == [
        "reporting_observed",
        "counterfactual_usage",
        "metered_savings",
    ]
    assert round(results.metered_savings.sum(), 2) == 1571.28
    assert sorted(error_bands.keys()) == [
        "FSU Error Band",
        "OLS Error Band",
        "OLS Error Band: Model Error",
        "OLS Error Band: Noise",
    ]
Ejemplo n.º 8
0
def test_metered_savings_cdd_hdd_daily_with_disaggregated(
        baseline_model_daily, reporting_meter_data_daily,
        reporting_temperature_data):

    results, error_bands = metered_savings(
        baseline_model_daily,
        reporting_meter_data_daily,
        reporting_temperature_data,
        with_disaggregated=True,
    )
    assert list(sorted(results.columns)) == [
        "counterfactual_base_load",
        "counterfactual_cooling_load",
        "counterfactual_heating_load",
        "counterfactual_usage",
        "metered_savings",
        "reporting_observed",
    ]
    assert round(error_bands["FSU Error Band"], 2) == 601.52