def test_basic_hourly(hourly_trace, monkeypatch_temperature_data,
                      mock_isd_weather_source):
    mdf = ModelDataFormatter("H")

    df = mdf.create_input(hourly_trace, mock_isd_weather_source)

    assert all(df.columns == ["energy", "tempF"])
    assert df.index[0] == datetime(2000, 1, 1, 0, tzinfo=pytz.UTC)
    assert df.index[2] == datetime(2000, 1, 1, 2, tzinfo=pytz.UTC)
    assert df.index.freq == 'H'
    assert_allclose(df.energy, [1, 1, 0])
    assert_allclose(df.tempF, [35.617314, 35.607664, 35.598025])

    description = mdf.describe_input(df)
    assert description.get('start_date') == \
        datetime(2000, 1, 1, 0, tzinfo=pytz.UTC)
    assert description.get('end_date') == \
        datetime(2000, 1, 1, 2, tzinfo=pytz.UTC)
    assert description.get('n_rows') == 3

    missing = mdf.get_input_data_mask(df)
    assert missing.shape == (3, )
    assert sum(missing) == 0

    daily = mdf.daily_trace_data(hourly_trace)
    assert daily.shape[0] == 1
    assert_allclose(hourly_trace.data.value.sum(), daily.sum())
def test_basic_daily(daily_trace, monkeypatch_temperature_data,
                     mock_isd_weather_source):
    mdf = ModelDataFormatter("D")

    df = mdf.create_input(daily_trace, mock_isd_weather_source)

    assert all(df.columns == ["energy", "tempF"])
    assert df.index[0] == datetime(2000, 1, 1, tzinfo=pytz.UTC)
    assert df.index[2] == datetime(2000, 1, 3, tzinfo=pytz.UTC)
    assert df.index.freq == 'D'
    assert_allclose(df.energy, [1, 1, 0.])
    assert_allclose(df.tempF, [35.507344, 35.282373, 35.064391])

    description = mdf.describe_input(df)
    assert description.get('start_date') == \
        datetime(2000, 1, 1, tzinfo=pytz.UTC)
    assert description.get('end_date') == \
        datetime(2000, 1, 3, tzinfo=pytz.UTC)
    assert description.get('n_rows') == 3

    missing = mdf.get_input_data_mask(df)
    assert missing.shape[0] == 3
    assert missing.sum() == 0

    daily = mdf.daily_trace_data(daily_trace)
    assert daily.shape[0] == 3
    assert_allclose(daily_trace.data.value.sum(), daily.sum())
Exemplo n.º 3
0
def test_basic_hourly(hourly_trace, mock_isd_weather_source):
    mdf = ModelDataFormatter("H")

    df = mdf.create_input(hourly_trace, mock_isd_weather_source)

    assert all(df.columns == ["energy", "tempF"])
    assert df.index[0] == datetime(2000, 1, 1, 0, tzinfo=pytz.UTC)
    assert df.index[2] == datetime(2000, 1, 1, 2, tzinfo=pytz.UTC)
    assert df.index.freq == 'H'
    assert_allclose(df.energy, [1, 1, np.nan])
    assert_allclose(df.tempF, [32., 32., 32.])

    description = mdf.describe_input(df)
    assert description.get('start_date') == \
        datetime(2000, 1, 1, 0, tzinfo=pytz.UTC)
    assert description.get('end_date') == \
        datetime(2000, 1, 1, 2, tzinfo=pytz.UTC)
    assert description.get('n_rows') == 3
def test_empty_description():
    mdf = ModelDataFormatter("H")
    description = mdf.describe_input(pd.DataFrame())
    assert description['start_date'] is None
    assert description['end_date'] is None
    assert description['n_rows'] is 0
def test_empty_description():
    mdf = ModelDataFormatter("H")
    description = mdf.describe_input(pd.DataFrame())
    assert description['start_date'] is None
    assert description['end_date'] is None
    assert description['n_rows'] is 0