@@ -204,37 +204,49 @@ def test_intersection_cases(self):
204204 result = rng .intersection (rng [0 :0 ])
205205 assert len (result ) == 0
206206
207- def test_difference (self ):
207+ @pytest .mark .parametrize ("sort" , [True , False ])
208+ def test_difference (self , sort ):
208209 # diff
209- rng1 = pd .period_range ('1/1/2000' , freq = 'D' , periods = 5 )
210+ period_rng = ['1/3/2000' , '1/2/2000' , '1/1/2000' , '1/5/2000' ,
211+ '1/4/2000' ]
212+ rng1 = pd .PeriodIndex (period_rng , freq = 'D' )
210213 other1 = pd .period_range ('1/6/2000' , freq = 'D' , periods = 5 )
211- expected1 = pd . period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
214+ expected1 = rng1
212215
213- rng2 = pd .period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
216+ rng2 = pd .PeriodIndex ( period_rng , freq = 'D' )
214217 other2 = pd .period_range ('1/4/2000' , freq = 'D' , periods = 5 )
215- expected2 = pd .period_range ('1/1/2000' , freq = 'D' , periods = 3 )
218+ expected2 = pd .PeriodIndex (['1/3/2000' , '1/2/2000' , '1/1/2000' ],
219+ freq = 'D' )
216220
217- rng3 = pd .period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
221+ rng3 = pd .PeriodIndex ( period_rng , freq = 'D' )
218222 other3 = pd .PeriodIndex ([], freq = 'D' )
219- expected3 = pd . period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
223+ expected3 = rng3
220224
221- rng4 = pd .period_range ('2000-01-01 09:00' , freq = 'H' , periods = 5 )
225+ period_rng = ['2000-01-01 10:00' , '2000-01-01 09:00' ,
226+ '2000-01-01 12:00' , '2000-01-01 11:00' ,
227+ '2000-01-01 13:00' ]
228+ rng4 = pd .PeriodIndex (period_rng , freq = 'H' )
222229 other4 = pd .period_range ('2000-01-02 09:00' , freq = 'H' , periods = 5 )
223230 expected4 = rng4
224231
225- rng5 = pd .PeriodIndex (['2000-01-01 09:01 ' , '2000-01-01 09:03 ' ,
232+ rng5 = pd .PeriodIndex (['2000-01-01 09:03 ' , '2000-01-01 09:01 ' ,
226233 '2000-01-01 09:05' ], freq = 'T' )
227234 other5 = pd .PeriodIndex (
228235 ['2000-01-01 09:01' , '2000-01-01 09:05' ], freq = 'T' )
229236 expected5 = pd .PeriodIndex (['2000-01-01 09:03' ], freq = 'T' )
230237
231- rng6 = pd .period_range ('2000-01-01' , freq = 'M' , periods = 7 )
238+ period_rng = ['2000-02-01' , '2000-01-01' , '2000-06-01' ,
239+ '2000-07-01' , '2000-05-01' , '2000-03-01' ,
240+ '2000-04-01' ]
241+ rng6 = pd .PeriodIndex (period_rng , freq = 'M' )
232242 other6 = pd .period_range ('2000-04-01' , freq = 'M' , periods = 7 )
233- expected6 = pd .period_range ('2000-01-01' , freq = 'M' , periods = 3 )
243+ expected6 = pd .PeriodIndex (['2000-02-01' , '2000-01-01' , '2000-03-01' ],
244+ freq = 'M' )
234245
235- rng7 = pd .period_range ('2003-01-01' , freq = 'A' , periods = 5 )
246+ period_rng = ['2003' , '2007' , '2006' , '2005' , '2004' ]
247+ rng7 = pd .PeriodIndex (period_rng , freq = 'A' )
236248 other7 = pd .period_range ('1998-01-01' , freq = 'A' , periods = 8 )
237- expected7 = pd .period_range ( ' 2006-01-01' , freq = 'A' , periods = 2 )
249+ expected7 = pd .PeriodIndex ([ '2007' , ' 2006' ] , freq = 'A' )
238250
239251 for rng , other , expected in [(rng1 , other1 , expected1 ),
240252 (rng2 , other2 , expected2 ),
@@ -243,5 +255,7 @@ def test_difference(self):
243255 (rng5 , other5 , expected5 ),
244256 (rng6 , other6 , expected6 ),
245257 (rng7 , other7 , expected7 ), ]:
246- result_union = rng .difference (other )
258+ result_union = rng .difference (other , sort )
259+ if sort :
260+ expected = expected .sort_values ()
247261 tm .assert_index_equal (result_union , expected )
0 commit comments