first commit
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import pandas as pd
|
||||
import pytest
|
||||
|
||||
from data_processing import filter_by_date, hourly_average
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sample_df():
|
||||
return pd.DataFrame(
|
||||
{
|
||||
"timestamp": pd.to_datetime(
|
||||
[
|
||||
"2026-07-22 08:05",
|
||||
"2026-07-22 08:40",
|
||||
"2026-07-22 09:10",
|
||||
"2026-07-23 08:05", # andere dag, moet uitgefilterd worden
|
||||
]
|
||||
),
|
||||
"glucose_value": [6.0, 8.0, 7.0, 12.0],
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def test_filter_by_date_keeps_only_selected_day(sample_df):
|
||||
result = filter_by_date(sample_df, pd.Timestamp("2026-07-22").date())
|
||||
assert len(result) == 3
|
||||
assert (result["timestamp"].dt.date == pd.Timestamp("2026-07-22").date()).all()
|
||||
|
||||
|
||||
def test_hourly_average_computes_mean_per_hour(sample_df):
|
||||
filtered = filter_by_date(sample_df, pd.Timestamp("2026-07-22").date())
|
||||
result = hourly_average(filtered)
|
||||
|
||||
hour_8 = result.loc[result["hour"] == 8, "glucose_value"].iloc[0]
|
||||
hour_9 = result.loc[result["hour"] == 9, "glucose_value"].iloc[0]
|
||||
|
||||
assert hour_8 == pytest.approx(7.0) # gemiddelde van 6.0 en 8.0
|
||||
assert hour_9 == pytest.approx(7.0)
|
||||
|
||||
|
||||
def test_hourly_average_handles_empty_input():
|
||||
empty = pd.DataFrame(columns=["timestamp", "glucose_value"])
|
||||
result = hourly_average(empty)
|
||||
assert result.empty
|
||||
assert list(result.columns) == ["hour", "glucose_value"]
|
||||
|
||||
|
||||
def test_hourly_average_only_returns_hours_with_data(sample_df):
|
||||
filtered = filter_by_date(sample_df, pd.Timestamp("2026-07-22").date())
|
||||
result = hourly_average(filtered)
|
||||
# alleen uur 8 en 9 hebben data op deze dag, dus precies 2 rijen
|
||||
assert len(result) == 2
|
||||
Reference in New Issue
Block a user