@@ -204,37 +204,49 @@ def test_intersection_cases(self):
204
204
result = rng .intersection (rng [0 :0 ])
205
205
assert len (result ) == 0
206
206
207
- def test_difference (self ):
207
+ @pytest .mark .parametrize ("sort" , [True , False ])
208
+ def test_difference (self , sort ):
208
209
# 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' )
210
213
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
212
215
213
- rng2 = pd .period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
216
+ rng2 = pd .PeriodIndex ( period_rng , freq = 'D' )
214
217
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' )
216
220
217
- rng3 = pd .period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
221
+ rng3 = pd .PeriodIndex ( period_rng , freq = 'D' )
218
222
other3 = pd .PeriodIndex ([], freq = 'D' )
219
- expected3 = pd . period_range ( '1/1/2000' , freq = 'D' , periods = 5 )
223
+ expected3 = rng3
220
224
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' )
222
229
other4 = pd .period_range ('2000-01-02 09:00' , freq = 'H' , periods = 5 )
223
230
expected4 = rng4
224
231
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 ' ,
226
233
'2000-01-01 09:05' ], freq = 'T' )
227
234
other5 = pd .PeriodIndex (
228
235
['2000-01-01 09:01' , '2000-01-01 09:05' ], freq = 'T' )
229
236
expected5 = pd .PeriodIndex (['2000-01-01 09:03' ], freq = 'T' )
230
237
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' )
232
242
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' )
234
245
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' )
236
248
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' )
238
250
239
251
for rng , other , expected in [(rng1 , other1 , expected1 ),
240
252
(rng2 , other2 , expected2 ),
@@ -243,5 +255,7 @@ def test_difference(self):
243
255
(rng5 , other5 , expected5 ),
244
256
(rng6 , other6 , expected6 ),
245
257
(rng7 , other7 , expected7 ), ]:
246
- result_union = rng .difference (other )
258
+ result_union = rng .difference (other , sort )
259
+ if sort :
260
+ expected = expected .sort_values ()
247
261
tm .assert_index_equal (result_union , expected )
0 commit comments