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)
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, ) """
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
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
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
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
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", ]
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