Skip zero-duration floor opportunities
This commit is contained in:
@@ -173,8 +173,8 @@ def _candidate_region(
|
|||||||
field="region_end_seconds",
|
field="region_end_seconds",
|
||||||
uid=uid,
|
uid=uid,
|
||||||
)
|
)
|
||||||
if end <= start:
|
if end < start:
|
||||||
raise ValueError(f"{uid}: opportunity region must have positive duration")
|
raise ValueError(f"{uid}: opportunity region ends before it starts")
|
||||||
return start, end
|
return start, end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -183,6 +183,27 @@ class OpportunityEventTests(unittest.TestCase):
|
|||||||
1,
|
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:
|
def test_entry_score_uses_max_wearer_probability_before_resolution(self) -> None:
|
||||||
event = OpportunityEvent(
|
event = OpportunityEvent(
|
||||||
"entry", "Session_4", "entry", True, "WEARER_ENTRY", "WEARER_ONSET",
|
"entry", "Session_4", "entry", True, "WEARER_ENTRY", "WEARER_ONSET",
|
||||||
|
|||||||
Reference in New Issue
Block a user