Skip zero-duration floor opportunities
This commit is contained in:
@@ -173,8 +173,8 @@ def _candidate_region(
|
||||
field="region_end_seconds",
|
||||
uid=uid,
|
||||
)
|
||||
if end <= start:
|
||||
raise ValueError(f"{uid}: opportunity region must have positive duration")
|
||||
if end < start:
|
||||
raise ValueError(f"{uid}: opportunity region ends before it starts")
|
||||
return start, end
|
||||
|
||||
|
||||
|
||||
@@ -183,6 +183,27 @@ class OpportunityEventTests(unittest.TestCase):
|
||||
1,
|
||||
)
|
||||
|
||||
def test_zero_duration_mined_opportunity_is_skipped_not_fatal(self) -> None:
|
||||
temporary, path = self.write_reviews([
|
||||
reviewed_row(
|
||||
"zero-gap",
|
||||
family="entry",
|
||||
verdict="HARD_NEGATIVE",
|
||||
subtype="ENTRY_OTHER_TO_OTHER",
|
||||
anchor=2.0,
|
||||
region_start=2.0,
|
||||
region_end=2.0,
|
||||
candidate_source="OTHER_TO_OTHER",
|
||||
)
|
||||
])
|
||||
self.addCleanup(temporary.cleanup)
|
||||
events, diagnostics = load_opportunity_events([path], ["Session_4"])
|
||||
self.assertEqual(events, [])
|
||||
self.assertEqual(
|
||||
diagnostics["skipped"]["entry_nonpositive_opportunity_duration"],
|
||||
1,
|
||||
)
|
||||
|
||||
def test_entry_score_uses_max_wearer_probability_before_resolution(self) -> None:
|
||||
event = OpportunityEvent(
|
||||
"entry", "Session_4", "entry", True, "WEARER_ENTRY", "WEARER_ONSET",
|
||||
|
||||
Reference in New Issue
Block a user