Skip to content

Commit 773b9b7

Browse files
authored
Merge pull request #1832 from cmu-delphi/ndefries/validator/date-comare-error
[Validator] Cast timestamp to date in reference vs test data up-to-dateness comparison
2 parents be58bd0 + 4fea99a commit 773b9b7

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

_delphi_utils_python/delphi_utils/validator/dynamic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ def check_max_date_vs_reference(self, df_to_test, df_to_reference, checking_date
404404
Returns:
405405
- None
406406
"""
407-
if df_to_test["time_value"].max() < df_to_reference["time_value"].max():
407+
if df_to_test["time_value"].max() < df_to_reference["time_value"].max().date():
408408
report.add_raised_error(
409409
ValidationFailure("check_max_date_vs_reference",
410410
checking_date,

_delphi_utils_python/tests/validator/test_dynamic.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"""Tests for dynamic validator."""
2-
from datetime import date, datetime
2+
from datetime import date, datetime, timedelta
33
import numpy as np
44
import pandas as pd
55

@@ -465,3 +465,32 @@ def test_source_api_overlap(self):
465465

466466
assert len(report.raised_warnings) == 2
467467
assert report.raised_warnings[0].check_name == "check_positive_negative_spikes"
468+
469+
class TestDateComparison:
470+
params = {
471+
"common": {
472+
"data_source": "",
473+
"span_length": 1,
474+
"end_date": "2020-09-02"
475+
}
476+
}
477+
478+
def test_date_comparison_by_type(self):
479+
validator = DynamicValidator(self.params)
480+
report = ValidationReport([])
481+
482+
ref_val = [30, 30, 30]
483+
test_val = [100, 100, 100]
484+
485+
START = datetime.strptime("2020-10-01", "%Y-%m-%d")
486+
ref_data = pd.DataFrame({"val": ref_val, "se": [np.nan] * len(ref_val),
487+
"sample_size": [np.nan] * len(ref_val), "geo_id": ["1"] * len(ref_val),
488+
# datetime64 type
489+
"time_value": pd.date_range(start=START, end=START + timedelta(days=len(ref_val) - 1))})
490+
test_data = pd.DataFrame({"val": test_val, "se": [np.nan] * len(test_val),
491+
"sample_size": [np.nan] * len(test_val), "geo_id": ["1"] * len(test_val),
492+
# datetime.date type
493+
"time_value": datetime.strptime("2020-10-26", "%Y-%m-%d").date()})
494+
495+
# This should run without raising any errors.
496+
validator.check_max_date_vs_reference(test_data, ref_data, "date", "state", "signal", report)

0 commit comments

Comments
 (0)