Skip to content

Commit 6eedcb3

Browse files
author
Philip de Nier
committed
Ensure overlaps_with_... and intersect_with are consistent
It makes sense to view an overlap occuring if the intersection is not empty. The same should also happen to the special case of never() and eternity() ranges. It should return False given that intersect_with returns an empty (never()) range. This also resulted in fixes to the tests for is_contiguous_with_... where a range is never(). sem-ver: feature
1 parent 42ad85c commit 6eedcb3

6 files changed

Lines changed: 44 additions & 45 deletions

File tree

mediatimestamp/count_range.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ def ends_later_than_range(self, other: "CountRange") -> bool:
359359

360360
def overlaps_with_range(self, other: "CountRange") -> bool:
361361
"""Returns true if this range and the other overlap."""
362-
return (not self.is_earlier_than_range(other) and not self.is_later_than_range(other))
362+
return not self.intersect_with(other).is_empty()
363363

364364
def is_contiguous_with_range(self, other: "CountRange") -> bool:
365365
"""Returns true if the union of this range and the other would be a valid range"""

mediatimestamp/immutable/timerange.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -563,8 +563,7 @@ def ends_later_than_timerange(self, other: SupportsMediaTimeRange) -> bool:
563563

564564
def overlaps_with_timerange(self, other: SupportsMediaTimeRange) -> bool:
565565
"""Returns true if this timerange and the other overlap."""
566-
other = mediatimerange(other)
567-
return (not self.is_earlier_than_timerange(other) and not self.is_later_than_timerange(other))
566+
return not self.intersect_with(other).is_empty()
568567

569568
def is_contiguous_with_timerange(self, other: SupportsMediaTimeRange) -> bool:
570569
"""Returns true if the union of this timerange and the other would be a valid timerange"""

mediatimestamp/time_value_range.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ def overlaps_with_range(self, other: RangeConstructionTypes) -> bool:
559559
"""Returns true if this range and the other overlap."""
560560
other = self._as_time_value_range(other)
561561

562-
return (not self.is_earlier_than_range(other) and not self.is_later_than_range(other))
562+
return not self.intersect_with(other).is_empty()
563563

564564
def is_contiguous_with_range(self, other: RangeConstructionTypes) -> bool:
565565
"""Returns true if the union of this range and the other would be a valid range"""

tests/test_count_range.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -454,31 +454,31 @@ def test_comparisons(self):
454454
(False, False, True, False, True, False, True, False, False, False)),
455455

456456
(CountRange.never(), CountRange.from_str("_"),
457-
(False, False, False, False, False, False, False, False, True, True)),
457+
(False, False, False, False, False, False, False, False, False, False)),
458458
(CountRange.never(), CountRange.from_str("[0_"),
459-
(False, False, False, False, False, False, False, False, True, True)),
459+
(False, False, False, False, False, False, False, False, False, False)),
460460
(CountRange.never(), CountRange.from_str("(0_"),
461-
(False, False, False, False, False, False, False, False, True, True)),
461+
(False, False, False, False, False, False, False, False, False, False)),
462462
(CountRange.never(), CountRange.from_str("[10_"),
463-
(False, False, False, False, False, False, False, False, True, True)),
463+
(False, False, False, False, False, False, False, False, False, False)),
464464
(CountRange.never(), CountRange.from_str("(10_"),
465-
(False, False, False, False, False, False, False, False, True, True)),
465+
(False, False, False, False, False, False, False, False, False, False)),
466466
(CountRange.never(), CountRange.from_str("_0]"),
467-
(False, False, False, False, False, False, False, False, True, True)),
467+
(False, False, False, False, False, False, False, False, False, False)),
468468
(CountRange.never(), CountRange.from_str("_0)"),
469-
(False, False, False, False, False, False, False, False, True, True)),
469+
(False, False, False, False, False, False, False, False, False, False)),
470470
(CountRange.never(), CountRange.from_str("_10]"),
471-
(False, False, False, False, False, False, False, False, True, True)),
471+
(False, False, False, False, False, False, False, False, False, False)),
472472
(CountRange.never(), CountRange.from_str("_10)"),
473-
(False, False, False, False, False, False, False, False, True, True)),
473+
(False, False, False, False, False, False, False, False, False, False)),
474474
(CountRange.never(), CountRange.from_str("[0_10)"),
475-
(False, False, False, False, False, False, False, False, True, True)),
475+
(False, False, False, False, False, False, False, False, False, False)),
476476
(CountRange.never(), CountRange.from_str("(0_10)"),
477-
(False, False, False, False, False, False, False, False, True, True)),
477+
(False, False, False, False, False, False, False, False, False, False)),
478478
(CountRange.never(), CountRange.from_str("[5_10)"),
479-
(False, False, False, False, False, False, False, False, True, True)),
479+
(False, False, False, False, False, False, False, False, False, False)),
480480
(CountRange.never(), CountRange.from_str("(5_10)"),
481-
(False, False, False, False, False, False, False, False, True, True)),
481+
(False, False, False, False, False, False, False, False, False, False)),
482482
]
483483
functions = ("starts_inside_range",
484484
"ends_inside_range",

tests/test_time_value_range.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -552,31 +552,31 @@ def test_comparisons(self):
552552
(False, False, True, False, True, False, True, False, False, False)),
553553

554554
(TimeValueRange.never(), TimeValueRange.from_str("_"),
555-
(False, False, False, False, False, False, False, False, True, True)),
555+
(False, False, False, False, False, False, False, False, False, False)),
556556
(TimeValueRange.never(), TimeValueRange.from_str("[0_"),
557-
(False, False, False, False, False, False, False, False, True, True)),
557+
(False, False, False, False, False, False, False, False, False, False)),
558558
(TimeValueRange.never(), TimeValueRange.from_str("(0_"),
559-
(False, False, False, False, False, False, False, False, True, True)),
559+
(False, False, False, False, False, False, False, False, False, False)),
560560
(TimeValueRange.never(), TimeValueRange.from_str("[10_"),
561-
(False, False, False, False, False, False, False, False, True, True)),
561+
(False, False, False, False, False, False, False, False, False, False)),
562562
(TimeValueRange.never(), TimeValueRange.from_str("(10_"),
563-
(False, False, False, False, False, False, False, False, True, True)),
563+
(False, False, False, False, False, False, False, False, False, False)),
564564
(TimeValueRange.never(), TimeValueRange.from_str("_0]"),
565-
(False, False, False, False, False, False, False, False, True, True)),
565+
(False, False, False, False, False, False, False, False, False, False)),
566566
(TimeValueRange.never(), TimeValueRange.from_str("_0)"),
567-
(False, False, False, False, False, False, False, False, True, True)),
567+
(False, False, False, False, False, False, False, False, False, False)),
568568
(TimeValueRange.never(), TimeValueRange.from_str("_10]"),
569-
(False, False, False, False, False, False, False, False, True, True)),
569+
(False, False, False, False, False, False, False, False, False, False)),
570570
(TimeValueRange.never(), TimeValueRange.from_str("_10)"),
571-
(False, False, False, False, False, False, False, False, True, True)),
571+
(False, False, False, False, False, False, False, False, False, False)),
572572
(TimeValueRange.never(), TimeValueRange.from_str("[0_10)"),
573-
(False, False, False, False, False, False, False, False, True, True)),
573+
(False, False, False, False, False, False, False, False, False, False)),
574574
(TimeValueRange.never(), TimeValueRange.from_str("(0_10)"),
575-
(False, False, False, False, False, False, False, False, True, True)),
575+
(False, False, False, False, False, False, False, False, False, False)),
576576
(TimeValueRange.never(), TimeValueRange.from_str("[5_10)"),
577-
(False, False, False, False, False, False, False, False, True, True)),
577+
(False, False, False, False, False, False, False, False, False, False)),
578578
(TimeValueRange.never(), TimeValueRange.from_str("(5_10)"),
579-
(False, False, False, False, False, False, False, False, True, True)),
579+
(False, False, False, False, False, False, False, False, False, False)),
580580
]
581581
functions = ("starts_inside_range",
582582
"ends_inside_range",

tests/test_timerange.py

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -700,35 +700,35 @@ def test_comparisons(self):
700700
(False, False, False, True, False, True, False, True, False, True)),
701701

702702
(TimeRange.never(), TimeRange.from_str("_"),
703-
(False, False, False, False, False, False, False, False, True, True)),
703+
(False, False, False, False, False, False, False, False, False, False)),
704704
(TimeRange.never(), TimeRange.from_str("[0:0_"),
705-
(False, False, False, False, False, False, False, False, True, True)),
705+
(False, False, False, False, False, False, False, False, False, False)),
706706
(TimeRange.never(), TimeRange.from_str("(0:0_"),
707-
(False, False, False, False, False, False, False, False, True, True)),
707+
(False, False, False, False, False, False, False, False, False, False)),
708708
(TimeRange.never(), TimeRange.from_str("[10:0_"),
709-
(False, False, False, False, False, False, False, False, True, True)),
709+
(False, False, False, False, False, False, False, False, False, False)),
710710
(TimeRange.never(), TimeRange.from_str("(10:0_"),
711-
(False, False, False, False, False, False, False, False, True, True)),
711+
(False, False, False, False, False, False, False, False, False, False)),
712712
(TimeRange.never(), TimeRange.from_str("_0:0]"),
713-
(False, False, False, False, False, False, False, False, True, True)),
713+
(False, False, False, False, False, False, False, False, False, False)),
714714
(TimeRange.never(), TimeRange.from_str("_0:0)"),
715-
(False, False, False, False, False, False, False, False, True, True)),
715+
(False, False, False, False, False, False, False, False, False, False)),
716716
(TimeRange.never(), TimeRange.from_str("_10:0]"),
717-
(False, False, False, False, False, False, False, False, True, True)),
717+
(False, False, False, False, False, False, False, False, False, False)),
718718
(TimeRange.never(), TimeRange.from_str("_10:0)"),
719-
(False, False, False, False, False, False, False, False, True, True)),
719+
(False, False, False, False, False, False, False, False, False, False)),
720720
(TimeRange.never(), TimeRange.from_str("[0:0_10:0)"),
721-
(False, False, False, False, False, False, False, False, True, True)),
721+
(False, False, False, False, False, False, False, False, False, False)),
722722
(TimeRange.never(), TimeRange.from_str("(0:0_10:0)"),
723-
(False, False, False, False, False, False, False, False, True, True)),
723+
(False, False, False, False, False, False, False, False, False, False)),
724724
(TimeRange.never(), TimeRange.from_str("[5:0_10:0)"),
725-
(False, False, False, False, False, False, False, False, True, True)),
725+
(False, False, False, False, False, False, False, False, False, False)),
726726
(TimeRange.never(), TimeRange.from_str("(5:0_10:0)"),
727-
(False, False, False, False, False, False, False, False, True, True)),
727+
(False, False, False, False, False, False, False, False, False, False)),
728728
(TimeRange.never(), TimeRange.from_str("[-1:0_0:0)"),
729-
(False, False, False, False, False, False, False, False, True, True)),
729+
(False, False, False, False, False, False, False, False, False, False)),
730730
(TimeRange.never(), TimeRange.from_str("(-1:0_)"),
731-
(False, False, False, False, False, False, False, False, True, True)),
731+
(False, False, False, False, False, False, False, False, False, False)),
732732
]
733733
functions = ("starts_inside_timerange",
734734
"ends_inside_timerange",

0 commit comments

Comments
 (0)