@@ -1519,7 +1519,7 @@ def test_normalise(self):
15191519 msg = ("{!r}.normalise({}, {}, rounding={}) == {!r}, expected {!r}"
15201520 .format (tr , rate .numerator , rate .denominator , rounding , result , expected )))
15211521
1522- def test_union (self ):
1522+ def test_extend_to_encompass (self ):
15231523 test_data = [
15241524 (TimeRange .from_str ("()" ), TimeRange .from_str ("()" ),
15251525 TimeRange .from_str ("()" )),
@@ -1545,15 +1545,35 @@ def test_union(self):
15451545 TimeRange .from_str ("[5:0_15:0)" )),
15461546 (TimeRange .from_str ("()" ), TimeRange .from_str ("_15:0)" ),
15471547 TimeRange .from_str ("_15:0)" )),
1548+
1549+ # discontiguous
1550+ (TimeRange .from_str ("_0:0)" ), TimeRange .from_str ("(0:0_" ),
1551+ TimeRange .from_str ("_" )),
1552+ (TimeRange .from_str ("(0:0_" ), TimeRange .from_str ("_0:0)" ),
1553+ TimeRange .from_str ("_" )),
1554+ (TimeRange .from_str ("[0:0_5:0)" ), TimeRange .from_str ("(5:0_15:0)" ),
1555+ TimeRange .from_str ("[0:0_15:0)" )),
1556+ (TimeRange .from_str ("(5:0_15:0)" ), TimeRange .from_str ("[0:0_5:0)" ),
1557+ TimeRange .from_str ("[0:0_15:0)" )),
1558+ (TimeRange .from_str ("[0:0_5:0)" ), TimeRange .from_str ("[10:0_15:0)" ),
1559+ TimeRange .from_str ("[0:0_15:0)" )),
1560+ (TimeRange .from_str ("[10:0_15:0)" ), TimeRange .from_str ("[0:0_5:0)" ),
1561+ TimeRange .from_str ("[0:0_15:0)" )),
15481562 ]
15491563
15501564 for (first , second , expected ) in test_data :
15511565 with self .subTest (first = first , second = second , expected = expected ):
1552- self .assertEqual (first .union_with_timerange (second ), expected )
1566+ self .assertEqual (first .extend_to_encompass_timerange (second ), expected )
15531567
1568+ def test_union_raises (self ):
1569+ # discontiguous part of test_extend_to_encompass raises for a union
15541570 test_data = [
15551571 (TimeRange .from_str ("_0:0)" ), TimeRange .from_str ("(0:0_" )),
1572+ (TimeRange .from_str ("(0:0_" ), TimeRange .from_str ("_0:0)" )),
1573+ (TimeRange .from_str ("[0:0_5:0)" ), TimeRange .from_str ("(5:0_15:0)" )),
1574+ (TimeRange .from_str ("(5:0_15:0)" ), TimeRange .from_str ("[0:0_5:0)" )),
15561575 (TimeRange .from_str ("[0:0_5:0)" ), TimeRange .from_str ("[10:0_15:0)" )),
1576+ (TimeRange .from_str ("[10:0_15:0)" ), TimeRange .from_str ("[0:0_5:0)" )),
15571577 ]
15581578
15591579 for (first , second ) in test_data :
0 commit comments