def test_as_freq_daily(il_electricity_cdd_hdd_billing_monthly): meter_data = il_electricity_cdd_hdd_billing_monthly["meter_data"] assert meter_data.shape == (27, 1) as_daily = as_freq(meter_data.value, freq="D") assert as_daily.shape == (792, ) assert round(meter_data.value.sum(), 1) == round(as_daily.sum(), 1) == 21290.2
def test_as_freq_daily_temperature(il_electricity_cdd_hdd_billing_monthly): temperature_data = il_electricity_cdd_hdd_billing_monthly[ "temperature_data"] assert temperature_data.shape == (19417, ) as_daily = as_freq(temperature_data, freq="D", series_type="instantaneous") assert as_daily.shape == (811, ) assert abs(temperature_data.mean() - as_daily.mean()) <= 0.1
def test_as_freq_month_start(il_electricity_cdd_hdd_billing_monthly): meter_data = il_electricity_cdd_hdd_billing_monthly["meter_data"] assert meter_data.shape == (27, 1) as_month_start = as_freq(meter_data.value, freq="MS") assert as_month_start.shape == (28, ) assert round(meter_data.value.sum(), 1) == round(as_month_start.sum(), 1) == 21290.2
def test_as_freq_daily_to_daily(il_electricity_cdd_hdd_daily): meter_data = il_electricity_cdd_hdd_daily["meter_data"] assert meter_data.shape == (810, 1) as_daily = as_freq(meter_data.value, freq="D") assert as_daily.shape == (810, ) assert round(meter_data.value.sum(), 1) == round(as_daily.sum(), 1) == 21925.8
def test_as_freq_daily_all_nones(il_electricity_cdd_hdd_billing_monthly): meter_data = il_electricity_cdd_hdd_billing_monthly["meter_data"] meter_data["value"] = np.nan assert meter_data.shape == (27, 1) as_daily = as_freq(meter_data.value, freq="D") assert as_daily.shape == (792, ) assert round(meter_data.value.sum(), 1) == round(as_daily.sum(), 1) == 0
def test_as_freq_hourly_to_daily(il_electricity_cdd_hdd_hourly): meter_data = il_electricity_cdd_hdd_hourly["meter_data"] meter_data.iloc[-1]["value"] = np.nan assert meter_data.shape == (19417, 1) as_daily = as_freq(meter_data.value, freq="D") assert as_daily.shape == (811, ) assert round(meter_data.value.sum(), 1) == round(as_daily.sum(), 1) == 21926.0
def test_as_freq_perserves_nulls(il_electricity_cdd_hdd_billing_monthly): meter_data = il_electricity_cdd_hdd_billing_monthly["meter_data"] monthly_with_nulls = meter_data[meter_data.index.year != 2016].reindex( meter_data.index) daily_with_nulls = as_freq(monthly_with_nulls.value, freq="D") assert (round(monthly_with_nulls.value.sum(), 2) == round( daily_with_nulls.sum(), 2) == 11094.05) assert monthly_with_nulls.value.isnull().sum() == 13 assert daily_with_nulls.isnull().sum() == 365
def test_as_freq_daily_temperature_monthly( il_electricity_cdd_hdd_billing_monthly): temperature_data = il_electricity_cdd_hdd_billing_monthly[ "temperature_data"] temperature_data = temperature_data.groupby(pd.Grouper(freq="MS")).mean() assert temperature_data.shape == (28, ) as_daily = as_freq(temperature_data, freq="D", series_type="instantaneous") assert as_daily.shape == (824, ) assert round(as_daily.mean(), 1) == 54.5
def test_as_freq_month_start_temperature( il_electricity_cdd_hdd_billing_monthly): temperature_data = il_electricity_cdd_hdd_billing_monthly[ "temperature_data"] assert temperature_data.shape == (19417, ) as_month_start = as_freq(temperature_data, freq="MS", series_type="instantaneous") assert as_month_start.shape == (29, ) assert round(as_month_start.mean(), 1) == 53.4
def test_as_freq_hourly_temperature(il_electricity_cdd_hdd_billing_monthly): temperature_data = il_electricity_cdd_hdd_billing_monthly[ "temperature_data"] assert temperature_data.shape == (19417, ) as_hourly = as_freq(temperature_data, freq="H", series_type="instantaneous") assert as_hourly.shape == (19417, ) assert round(temperature_data.mean(), 1) == round(as_hourly.mean(), 1) == 54.6
def test_as_freq_not_series(il_electricity_cdd_hdd_billing_monthly): meter_data = il_electricity_cdd_hdd_billing_monthly["meter_data"] assert meter_data.shape == (27, 1) with pytest.raises(ValueError): as_freq(meter_data, freq="H")
def test_as_freq_empty(): meter_data = pd.DataFrame({"value": []}) empty_meter_data = as_freq(meter_data.value, freq="H") assert empty_meter_data.empty