def test_dwd_observation_stations_bbox():
    request = DwdObservationRequest(
        DwdObservationDataset.TEMPERATURE_AIR,
        DwdObservationResolution.HOURLY,
        DwdObservationPeriod.HISTORICAL,
        datetime(2020, 1, 1),
        datetime(2020, 1, 20),
    )
    nearby_station = request.filter_by_bbox(left=8.7862,
                                            bottom=49.9195,
                                            right=8.993,
                                            top=50.0900)
    nearby_station = nearby_station.df.drop("to_date", axis="columns")

    assert_frame_equal(nearby_station,
                       EXPECTED_STATIONS_DF.drop(columns=["distance"]))
def test_dwd_observation_stations_empty():
    request = DwdObservationRequest(
        DwdObservationDataset.TEMPERATURE_AIR,
        DwdObservationResolution.HOURLY,
        DwdObservationPeriod.HISTORICAL,
        datetime(2020, 1, 1),
        datetime(2020, 1, 20),
    )

    # Bbox
    assert request.filter_by_bbox(
        left=-100,
        bottom=-20,
        right=-90,
        top=-10,
    ).df.empty
def test_dwd_observation_stations_bbox():
    request = DwdObservationRequest(
        DwdObservationDataset.TEMPERATURE_AIR,
        DwdObservationResolution.HOURLY,
        DwdObservationPeriod.RECENT,
        datetime(2020, 1, 1),
        datetime(2020, 1, 20),
    )
    nearby_station = request.filter_by_bbox(
        left=8.7862, bottom=49.9195, right=8.993, top=50.0899
    )
    nearby_station = nearby_station.df.drop("to_date", axis="columns")

    pd.testing.assert_frame_equal(
        nearby_station,
        EXPECTED_DF_MULTIPLE.drop(columns=["distance"])
        .sort_values(["station_id"], key=lambda x: x.astype(int))
        .reset_index(drop=True),
    )