@@ -732,30 +732,21 @@ def test_fillna_datetime64(self):
732732 dtype = object )
733733 self .assert_index_equal (idx .fillna ('x' ), exp )
734734
735- def test_difference_of_union (self ):
736- # GH14323: Test taking the union of differences of an Index.
737- # Difference of DatetimeIndex does not preserve frequency,
738- # so a differencing operation should not retain the freq field of the
739- # original index.
740- i = pd .date_range ("20160920" , "20160925" , freq = "D" )
741-
742- a = pd .date_range ("20160921" , "20160924" , freq = "D" )
743- expected = pd .DatetimeIndex (["20160920" , "20160925" ], freq = None )
744- a_diff = i .difference (a )
745- tm .assert_index_equal (a_diff , expected )
746- tm .assert_attr_equal ('freq' , a_diff , expected )
747-
748- b = pd .date_range ("20160922" , "20160925" , freq = "D" )
749- b_diff = i .difference (b )
750- expected = pd .DatetimeIndex (["20160920" , "20160921" ], freq = None )
751- tm .assert_index_equal (b_diff , expected )
752- tm .assert_attr_equal ('freq' , b_diff , expected )
753-
754- union_of_diff = a_diff .union (b_diff )
755- expected = pd .DatetimeIndex (["20160920" , "20160921" , "20160925" ],
756- freq = None )
757- tm .assert_index_equal (union_of_diff , expected )
758- tm .assert_attr_equal ('freq' , union_of_diff , expected )
735+ def test_difference_freq (self ):
736+ # GH14323: difference of DatetimeIndex should not preserve frequency
737+
738+ index = date_range ("20160920" , "20160925" , freq = "D" )
739+ other = date_range ("20160921" , "20160924" , freq = "D" )
740+ expected = DatetimeIndex (["20160920" , "20160925" ], freq = None )
741+ idx_diff = index .difference (other )
742+ tm .assert_index_equal (idx_diff , expected )
743+ tm .assert_attr_equal ('freq' , idx_diff , expected )
744+
745+ other = date_range ("20160922" , "20160925" , freq = "D" )
746+ idx_diff = index .difference (other )
747+ expected = DatetimeIndex (["20160920" , "20160921" ], freq = None )
748+ tm .assert_index_equal (idx_diff , expected )
749+ tm .assert_attr_equal ('freq' , idx_diff , expected )
759750
760751
761752class TestPeriodIndex (DatetimeLike , tm .TestCase ):
@@ -963,29 +954,23 @@ def test_no_millisecond_field(self):
963954 with self .assertRaises (AttributeError ):
964955 DatetimeIndex ([]).millisecond
965956
966- def test_difference_of_union (self ):
967- # GH14323: Test taking the union of differences of an Index.
968- # Difference of Period MUST preserve frequency, but the ability
969- # to union results must be preserved
970- i = pd .period_range ("20160920" , "20160925" , freq = "D" )
971-
972- a = pd .period_range ("20160921" , "20160924" , freq = "D" )
973- expected = pd .PeriodIndex (["20160920" , "20160925" ], freq = 'D' )
974- a_diff = i .difference (a )
975- tm .assert_index_equal (a_diff , expected )
976- tm .assert_attr_equal ('freq' , a_diff , expected )
977-
978- b = pd .period_range ("20160922" , "20160925" , freq = "D" )
979- b_diff = i .difference (b )
980- expected = pd .PeriodIndex (["20160920" , "20160921" ], freq = 'D' )
981- tm .assert_index_equal (b_diff , expected )
982- tm .assert_attr_equal ('freq' , b_diff , expected )
983-
984- union_of_diff = a_diff .union (b_diff )
985- expected = pd .PeriodIndex (["20160920" , "20160921" , "20160925" ],
986- freq = 'D' )
987- tm .assert_index_equal (union_of_diff , expected )
988- tm .assert_attr_equal ('freq' , union_of_diff , expected )
957+ def test_difference_freq (self ):
958+ # GH14323: difference of Period MUST preserve frequency
959+ # but the ability to union results must be preserved
960+
961+ index = period_range ("20160920" , "20160925" , freq = "D" )
962+
963+ other = period_range ("20160921" , "20160924" , freq = "D" )
964+ expected = PeriodIndex (["20160920" , "20160925" ], freq = 'D' )
965+ idx_diff = index .difference (other )
966+ tm .assert_index_equal (idx_diff , expected )
967+ tm .assert_attr_equal ('freq' , idx_diff , expected )
968+
969+ other = period_range ("20160922" , "20160925" , freq = "D" )
970+ idx_diff = index .difference (other )
971+ expected = PeriodIndex (["20160920" , "20160921" ], freq = 'D' )
972+ tm .assert_index_equal (idx_diff , expected )
973+ tm .assert_attr_equal ('freq' , idx_diff , expected )
989974
990975
991976class TestTimedeltaIndex (DatetimeLike , tm .TestCase ):
@@ -1199,27 +1184,19 @@ def test_fillna_timedelta(self):
11991184 [pd .Timedelta ('1 day' ), 'x' , pd .Timedelta ('3 day' )], dtype = object )
12001185 self .assert_index_equal (idx .fillna ('x' ), exp )
12011186
1202- def test_difference_of_union (self ):
1203- # GH14323: Test taking the union of differences of an Index.
1204- # Difference of TimedeltaIndex does not preserve frequency,
1205- # so a differencing operation should not retain the freq field of the
1206- # original index.
1207- i = pd .timedelta_range ("0 days" , "5 days" , freq = "D" )
1208-
1209- a = pd .timedelta_range ("1 days" , "4 days" , freq = "D" )
1210- expected = pd .TimedeltaIndex (["0 days" , "5 days" ], freq = None )
1211- a_diff = i .difference (a )
1212- tm .assert_index_equal (a_diff , expected )
1213- tm .assert_attr_equal ('freq' , a_diff , expected )
1214-
1215- b = pd .timedelta_range ("2 days" , "5 days" , freq = "D" )
1216- b_diff = i .difference (b )
1217- expected = pd .TimedeltaIndex (["0 days" , "1 days" ], freq = None )
1218- tm .assert_index_equal (b_diff , expected )
1219- tm .assert_attr_equal ('freq' , b_diff , expected )
1220-
1221- union_of_difference = a_diff .union (b_diff )
1222- expected = pd .TimedeltaIndex (["0 days" , "1 days" , "5 days" ],
1223- freq = None )
1224- tm .assert_index_equal (union_of_difference , expected )
1225- tm .assert_attr_equal ('freq' , union_of_difference , expected )
1187+ def test_difference_freq (self ):
1188+ # GH14323: Difference of TimedeltaIndex should not preserve frequency
1189+
1190+ index = timedelta_range ("0 days" , "5 days" , freq = "D" )
1191+
1192+ other = timedelta_range ("1 days" , "4 days" , freq = "D" )
1193+ expected = TimedeltaIndex (["0 days" , "5 days" ], freq = None )
1194+ idx_diff = index .difference (other )
1195+ tm .assert_index_equal (idx_diff , expected )
1196+ tm .assert_attr_equal ('freq' , idx_diff , expected )
1197+
1198+ other = timedelta_range ("2 days" , "5 days" , freq = "D" )
1199+ idx_diff = index .difference (other )
1200+ expected = TimedeltaIndex (["0 days" , "1 days" ], freq = None )
1201+ tm .assert_index_equal (idx_diff , expected )
1202+ tm .assert_attr_equal ('freq' , idx_diff , expected )
0 commit comments