@@ -2890,6 +2890,29 @@ def test_loffset_returns_datetimeindex(self):
2890
2890
assert_frame_equal (result_agg , expected )
2891
2891
assert_frame_equal (result_how , expected )
2892
2892
2893
+ def test_upsampling_ohlc (self ):
2894
+ # GH 13083
2895
+ pi = PeriodIndex (start = '2000' , freq = 'D' , periods = 10 )
2896
+ s = Series (range (len (pi )), index = pi )
2897
+ expected = s .to_timestamp ().resample ('H' ).ohlc ().to_period ()
2898
+ # timestamp-based resampling doesn't include all sub-periods
2899
+ # of the last original period, so extend accordingly:
2900
+ pi_ext = PeriodIndex (start = '2000' , freq = 'H' , periods = 24 * len (pi ))
2901
+ expected = expected .reindex (pi_ext )
2902
+ result = s .resample ('H' ).ohlc ()
2903
+ assert_frame_equal (result , expected )
2904
+
2905
+ def test_upsampling_ohlc_freq_multiples (self ):
2906
+ pi = PeriodIndex (start = '2000' , freq = 'D' , periods = 10 )
2907
+ s = pd .Series (range (len (pi )), index = pi )
2908
+ expected = s .to_timestamp ().resample ('12H' ).ohlc ().to_period ('12H' )
2909
+ # timestamp-based resampling doesn't include all sub-periods
2910
+ # of the last original period, so extend accordingly:
2911
+ pi_ext = PeriodIndex (start = '2000' , freq = '12H' , periods = 2 * len (pi ))
2912
+ expected = expected .reindex (pi_ext )
2913
+ result = s .resample ('12H' , kind = 'period' ).ohlc ()
2914
+ assert_frame_equal (result , expected )
2915
+
2893
2916
2894
2917
class TestTimedeltaIndex (Base ):
2895
2918
_index_factory = lambda x : timedelta_range
0 commit comments