ENH: added selection to an unordered timeseries the same semantics as… · pandas-dev/pandas@3a173f1 (original) (raw)

`@@ -18,6 +18,7 @@

`

18

18

`import pandas.core.datetools as datetools

`

19

19

`import pandas.tseries.offsets as offsets

`

20

20

`import pandas.tseries.frequencies as fmod

`

``

21

`+

from pandas.tseries.index import TimeSeriesError

`

21

22

`import pandas as pd

`

22

23

``

23

24

`from pandas.util.testing import assert_series_equal, assert_almost_equal

`

`@@ -168,6 +169,32 @@ def test_indexing_over_size_cutoff(self):

`

168

169

`finally:

`

169

170

`_index._SIZE_CUTOFF = old_cutoff

`

170

171

``

``

172

`+

def test_indexing_unordered(self):

`

``

173

+

``

174

`+

GH 2437

`

``

175

`+

from pandas import concat

`

``

176

`+

rng = date_range(start='2011-01-01', end='2011-01-15')

`

``

177

`+

ts = Series(randn(len(rng)), index=rng)

`

``

178

`+

ts2 = concat([ts[0:4],ts[-4:],ts[4:-4]])

`

``

179

+

``

180

`+

for t in ts.index:

`

``

181

`+

s = str(t)

`

``

182

`+

expected = ts[t]

`

``

183

`+

result = ts2[t]

`

``

184

`+

self.assertTrue(expected == result)

`

``

185

+

``

186

`+

result = ts2['2011'].sort_index()

`

``

187

`+

expected = ts['2011']

`

``

188

`+

assert_series_equal(result,expected)

`

``

189

+

``

190

`+

diff freq

`

``

191

`+

rng = date_range(datetime(2005, 1, 1), periods=20, freq='M')

`

``

192

`+

ts = Series(np.arange(len(rng)), index=rng)

`

``

193

`+

ts = ts.take(np.random.permutation(20))

`

``

194

+

``

195

`+

result = ts['2005']

`

``

196

`+

for t in result.index:

`

``

197

`+

self.assertTrue(t.year == 2005)

`

171

198

``

172

199

`def assert_range_equal(left, right):

`

173

200

`assert(left.equals(right))

`

`@@ -2017,13 +2044,6 @@ def test_partial_slice_minutely(self):

`

2017

2044

`self.assert_(s['2005-1-1 23:59:00'] == s.ix[0])

`

2018

2045

`self.assertRaises(Exception, s.getitem, '2004-12-31 00:00:00')

`

2019

2046

``

2020

``

`-

def test_partial_not_monotonic(self):

`

2021

``

`-

rng = date_range(datetime(2005, 1, 1), periods=20, freq='M')

`

2022

``

`-

ts = Series(np.arange(len(rng)), index=rng)

`

2023

``

`-

ts = ts.take(np.random.permutation(20))

`

2024

``

-

2025

``

`-

self.assertRaises(Exception, ts.getitem, '2005')

`

2026

``

-

2027

2047

`def test_date_range_normalize(self):

`

2028

2048

`snap = datetime.today()

`

2029

2049

`n = 50

`