@@ -203,37 +203,49 @@ def test_intersection_cases(self):
203
203
result = rng .intersection (rng [0 :0 ])
204
204
assert len (result ) == 0
205
205
206
- def test_difference (self ):
206
+ @pytest .mark .parametrize ("sort" , [True , False ])
207
+ def test_difference (self , sort ):
207
208
# diff
208
- rng1 = pd .period_range ('1/1/2000' , freq = 'D' , periods = 5 )
209
+ period_rng = ['1/3/2000' , '1/2/2000' , '1/1/2000' , '1/5/2000' ,
210
+ '1/4/2000' ]
211
+ rng1 = pd .PeriodIndex (period_rng , freq = 'D' )
209
212
other1 = pd .period_range ('1/6/2000' , freq = 'D' , periods = 5 )
210
- expected1 = pd . period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
213
+ expected1 = rng1
211
214
212
- rng2 = pd .period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
215
+ rng2 = pd .PeriodIndex ( period_rng , freq = 'D' )
213
216
other2 = pd .period_range ('1/4/2000' , freq = 'D' , periods = 5 )
214
- expected2 = pd .period_range ('1/1/2000' , freq = 'D' , periods = 3 )
217
+ expected2 = pd .PeriodIndex (['1/3/2000' , '1/2/2000' , '1/1/2000' ],
218
+ freq = 'D' )
215
219
216
- rng3 = pd .period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
220
+ rng3 = pd .PeriodIndex ( period_rng , freq = 'D' )
217
221
other3 = pd .PeriodIndex ([], freq = 'D' )
218
- expected3 = pd . period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
222
+ expected3 = rng3
219
223
220
- rng4 = pd .period_range ('2000-01-01 09:00' , freq = 'H' , periods = 5 )
224
+ period_rng = ['2000-01-01 10:00' , '2000-01-01 09:00' ,
225
+ '2000-01-01 12:00' , '2000-01-01 11:00' ,
226
+ '2000-01-01 13:00' ]
227
+ rng4 = pd .PeriodIndex (period_rng , freq = 'H' )
221
228
other4 = pd .period_range ('2000-01-02 09:00' , freq = 'H' , periods = 5 )
222
229
expected4 = rng4
223
230
224
- rng5 = pd .PeriodIndex (['2000-01-01 09:01 ' , '2000-01-01 09:03 ' ,
231
+ rng5 = pd .PeriodIndex (['2000-01-01 09:03 ' , '2000-01-01 09:01 ' ,
225
232
'2000-01-01 09:05' ], freq = 'T' )
226
233
other5 = pd .PeriodIndex (
227
234
['2000-01-01 09:01' , '2000-01-01 09:05' ], freq = 'T' )
228
235
expected5 = pd .PeriodIndex (['2000-01-01 09:03' ], freq = 'T' )
229
236
230
- rng6 = pd .period_range ('2000-01-01' , freq = 'M' , periods = 7 )
237
+ period_rng = ['2000-02-01' , '2000-01-01' , '2000-06-01' ,
238
+ '2000-07-01' , '2000-05-01' , '2000-03-01' ,
239
+ '2000-04-01' ]
240
+ rng6 = pd .PeriodIndex (period_rng , freq = 'M' )
231
241
other6 = pd .period_range ('2000-04-01' , freq = 'M' , periods = 7 )
232
- expected6 = pd .period_range ('2000-01-01' , freq = 'M' , periods = 3 )
242
+ expected6 = pd .PeriodIndex (['2000-02-01' , '2000-01-01' , '2000-03-01' ],
243
+ freq = 'M' )
233
244
234
- rng7 = pd .period_range ('2003-01-01' , freq = 'A' , periods = 5 )
245
+ period_rng = ['2003' , '2007' , '2006' , '2005' , '2004' ]
246
+ rng7 = pd .PeriodIndex (period_rng , freq = 'A' )
235
247
other7 = pd .period_range ('1998-01-01' , freq = 'A' , periods = 8 )
236
- expected7 = pd .period_range ( ' 2006-01-01' , freq = 'A' , periods = 2 )
248
+ expected7 = pd .PeriodIndex ([ '2007' , ' 2006' ] , freq = 'A' )
237
249
238
250
for rng , other , expected in [(rng1 , other1 , expected1 ),
239
251
(rng2 , other2 , expected2 ),
@@ -242,5 +254,7 @@ def test_difference(self):
242
254
(rng5 , other5 , expected5 ),
243
255
(rng6 , other6 , expected6 ),
244
256
(rng7 , other7 , expected7 ), ]:
245
- result_union = rng .difference (other )
257
+ result_union = rng .difference (other , sort )
258
+ if sort :
259
+ expected = expected .sort_values ()
246
260
tm .assert_index_equal (result_union , expected )
0 commit comments