@@ -2843,6 +2843,29 @@ def test_loffset_returns_datetimeindex(self):
2843
2843
assert_frame_equal (result_agg , expected )
2844
2844
assert_frame_equal (result_how , expected )
2845
2845
2846
+ def test_upsampling_ohlc (self ):
2847
+ # GH 13083
2848
+ pi = PeriodIndex (start = '2000' , freq = 'D' , periods = 10 )
2849
+ s = Series (range (len (pi )), index = pi )
2850
+ expected = s .to_timestamp ().resample ('H' ).ohlc ().to_period ()
2851
+ # timestamp-based resampling doesn't include all sub-periods
2852
+ # of the last original period, so extend accordingly:
2853
+ pi_ext = PeriodIndex (start = '2000' , freq = 'H' , periods = 24 * len (pi ))
2854
+ expected = expected .reindex (pi_ext )
2855
+ result = s .resample ('H' ).ohlc ()
2856
+ assert_frame_equal (result , expected )
2857
+
2858
+ def test_upsampling_ohlc_freq_multiples (self ):
2859
+ pi = PeriodIndex (start = '2000' , freq = 'D' , periods = 10 )
2860
+ s = pd .Series (range (len (pi )), index = pi )
2861
+ expected = s .to_timestamp ().resample ('12H' ).ohlc ().to_period ('12H' )
2862
+ # timestamp-based resampling doesn't include all sub-periods
2863
+ # of the last original period, so extend accordingly:
2864
+ pi_ext = PeriodIndex (start = '2000' , freq = '12H' , periods = 2 * len (pi ))
2865
+ expected = expected .reindex (pi_ext )
2866
+ result = s .resample ('12H' , kind = 'period' ).ohlc ()
2867
+ assert_frame_equal (result , expected )
2868
+
2846
2869
2847
2870
class TestTimedeltaIndex (Base ):
2848
2871
_index_factory = lambda x : timedelta_range
0 commit comments