Skip to content

Commit 7e53030

Browse files
committed
tests for coerce datetime
1 parent b974465 commit 7e53030

2 files changed

Lines changed: 26 additions & 2 deletions

File tree

vetiver/monitor.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import plotly.express as px
22
import pandas as pd
3-
from datetime import timedelta
3+
from datetime import timedelta, datetime
44

55

66
def compute_metrics(
@@ -42,7 +42,10 @@ def compute_metrics(
4242
"""
4343

4444
df = data[[truth, estimate, date_var]].copy()
45-
df[date_var] = pd.to_datetime(df[date_var])
45+
46+
if not isinstance(date_var, datetime):
47+
df[date_var] = pd.to_datetime(df[date_var])
48+
4649
df = df.set_index(date_var).sort_index()
4750
lst = [_ for _ in _rolling_df(df=df, td=period)]
4851

vetiver/tests/test_monitor.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,27 @@ def test_compute():
3535
)
3636

3737

38+
def test_compute_coerce_datetime():
39+
40+
df_metrics = pd.DataFrame(
41+
{
42+
"index": ["2021-01-01", "2021-01-02", "2021-01-03"],
43+
"truth": [200, 201, 199],
44+
"pred": [198, 200, 199],
45+
}
46+
)
47+
td = timedelta(days=1)
48+
m = vetiver.compute_metrics(
49+
df_metrics, "index", td, metric_set=metric_set, truth="truth", estimate="pred"
50+
)
51+
assert isinstance(m, pd.DataFrame)
52+
assert m.shape == (4, 4)
53+
numpy.testing.assert_array_equal(
54+
m.metric.unique(),
55+
numpy.array(["mean_squared_error", "mean_absolute_error"], dtype=object),
56+
)
57+
58+
3859
def test_monitor(snapshot):
3960
snapshot.snapshot_dir = "./vetiver/tests/snapshots"
4061
m = vetiver.compute_metrics(

0 commit comments

Comments
 (0)