Skip to content

Commit 45b82e4

Browse files
replaced test_data fixture with more granular fixtures in pandas/tests/series/indexing/test_indexing.py
1 parent baaec4f commit 45b82e4

File tree

1 file changed

+87
-90
lines changed

1 file changed

+87
-90
lines changed

pandas/tests/series/indexing/test_indexing.py

Lines changed: 87 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ def test_basic_indexing():
3838
s[5] = 0
3939

4040

41-
def test_basic_getitem_with_labels(test_data):
42-
indices = test_data.ts.index[[5, 10, 15]]
41+
def test_basic_getitem_with_labels(datetime_series):
42+
indices = datetime_series.index[[5, 10, 15]]
4343

44-
result = test_data.ts[indices]
45-
expected = test_data.ts.reindex(indices)
44+
result = datetime_series[indices]
45+
expected = datetime_series.reindex(indices)
4646
assert_series_equal(result, expected)
4747

48-
result = test_data.ts[indices[0] : indices[2]]
49-
expected = test_data.ts.loc[indices[0] : indices[2]]
48+
result = datetime_series[indices[0] : indices[2]]
49+
expected = datetime_series.loc[indices[0] : indices[2]]
5050
assert_series_equal(result, expected)
5151

5252
# integer indexes, be careful
@@ -89,27 +89,24 @@ def test_getitem_setitem_ellipsis():
8989
assert (result == 5).all()
9090

9191

92-
def test_getitem_get(test_data):
93-
test_series = test_data.series
94-
test_obj_series = test_data.objSeries
92+
def test_getitem_get(datetime_series, string_series, object_series):
93+
idx1 = string_series.index[5]
94+
idx2 = object_series.index[5]
9595

96-
idx1 = test_series.index[5]
97-
idx2 = test_obj_series.index[5]
96+
assert string_series[idx1] == string_series.get(idx1)
97+
assert object_series[idx2] == object_series.get(idx2)
9898

99-
assert test_series[idx1] == test_series.get(idx1)
100-
assert test_obj_series[idx2] == test_obj_series.get(idx2)
99+
assert string_series[idx1] == string_series[5]
100+
assert object_series[idx2] == object_series[5]
101101

102-
assert test_series[idx1] == test_series[5]
103-
assert test_obj_series[idx2] == test_obj_series[5]
104-
105-
assert test_series.get(-1) == test_series.get(test_series.index[-1])
106-
assert test_series[5] == test_series.get(test_series.index[5])
102+
assert string_series.get(-1) == string_series.get(string_series.index[-1])
103+
assert string_series[5] == string_series.get(string_series.index[5])
107104

108105
# missing
109-
d = test_data.ts.index[0] - BDay()
106+
d = datetime_series.index[0] - BDay()
110107
msg = r"Timestamp\('1999-12-31 00:00:00', freq='B'\)"
111108
with pytest.raises(KeyError, match=msg):
112-
test_data.ts[d]
109+
datetime_series[d]
113110

114111
# None
115112
# GH 5652
@@ -118,20 +115,20 @@ def test_getitem_get(test_data):
118115
assert result is None
119116

120117

121-
def test_getitem_fancy(test_data):
122-
slice1 = test_data.series[[1, 2, 3]]
123-
slice2 = test_data.objSeries[[1, 2, 3]]
124-
assert test_data.series.index[2] == slice1.index[1]
125-
assert test_data.objSeries.index[2] == slice2.index[1]
126-
assert test_data.series[2] == slice1[1]
127-
assert test_data.objSeries[2] == slice2[1]
118+
def test_getitem_fancy(string_series, object_series):
119+
slice1 = string_series[[1, 2, 3]]
120+
slice2 = object_series[[1, 2, 3]]
121+
assert string_series.index[2] == slice1.index[1]
122+
assert object_series.index[2] == slice2.index[1]
123+
assert string_series[2] == slice1[1]
124+
assert object_series[2] == slice2[1]
128125

129126

130-
def test_getitem_generator(test_data):
131-
gen = (x > 0 for x in test_data.series)
132-
result = test_data.series[gen]
133-
result2 = test_data.series[iter(test_data.series > 0)]
134-
expected = test_data.series[test_data.series > 0]
127+
def test_getitem_generator(string_series):
128+
gen = (x > 0 for x in string_series)
129+
result = string_series[gen]
130+
result2 = string_series[iter(string_series > 0)]
131+
expected = string_series[string_series > 0]
135132
assert_series_equal(result, expected)
136133
assert_series_equal(result2, expected)
137134

@@ -169,11 +166,11 @@ def test_getitem_with_duplicates_indices(result_1, duplicate_item, expected_1):
169166
assert result[2] == result_1[2]
170167

171168

172-
def test_getitem_out_of_bounds(test_data):
169+
def test_getitem_out_of_bounds(datetime_series):
173170
# don't segfault, GH #495
174171
msg = "index out of bounds"
175172
with pytest.raises(IndexError, match=msg):
176-
test_data.ts[len(test_data.ts)]
173+
datetime_series[len(datetime_series)]
177174

178175
# GH #917
179176
s = Series([])
@@ -190,8 +187,8 @@ def test_getitem_setitem_integers():
190187
tm.assert_almost_equal(s["a"], 5)
191188

192189

193-
def test_getitem_box_float64(test_data):
194-
value = test_data.ts[5]
190+
def test_getitem_box_float64(datetime_series):
191+
value = datetime_series[5]
195192
assert isinstance(value, np.float64)
196193

197194

@@ -308,14 +305,14 @@ def test_getitem_dataframe():
308305
s[df > 5]
309306

310307

311-
def test_setitem(test_data):
312-
test_data.ts[test_data.ts.index[5]] = np.NaN
313-
test_data.ts[[1, 2, 17]] = np.NaN
314-
test_data.ts[6] = np.NaN
315-
assert np.isnan(test_data.ts[6])
316-
assert np.isnan(test_data.ts[2])
317-
test_data.ts[np.isnan(test_data.ts)] = 5
318-
assert not np.isnan(test_data.ts[2])
308+
def test_setitem(datetime_series, string_series):
309+
datetime_series[datetime_series.index[5]] = np.NaN
310+
datetime_series[[1, 2, 17]] = np.NaN
311+
datetime_series[6] = np.NaN
312+
assert np.isnan(datetime_series[6])
313+
assert np.isnan(datetime_series[2])
314+
datetime_series[np.isnan(datetime_series)] = 5
315+
assert not np.isnan(datetime_series[2])
319316

320317
# caught this bug when writing tests
321318
series = Series(tm.makeIntIndex(20).astype(float), index=tm.makeIntIndex(20))
@@ -324,11 +321,11 @@ def test_setitem(test_data):
324321
assert (series[::2] == 0).all()
325322

326323
# set item that's not contained
327-
s = test_data.series.copy()
324+
s = string_series.copy()
328325
s["foobar"] = 1
329326

330327
app = Series([1], index=["foobar"], name="series")
331-
expected = test_data.series.append(app)
328+
expected = string_series.append(app)
332329
assert_series_equal(s, expected)
333330

334331
# Test for issue #10193
@@ -370,52 +367,52 @@ def test_setitem_dtypes():
370367
assert_series_equal(s, Series([np.nan, 1.0]))
371368

372369

373-
def test_set_value(test_data):
374-
idx = test_data.ts.index[10]
375-
res = test_data.ts._set_value(idx, 0)
376-
assert res is test_data.ts
377-
assert test_data.ts[idx] == 0
370+
def test_set_value(datetime_series, string_series):
371+
idx = datetime_series.index[10]
372+
res = datetime_series._set_value(idx, 0)
373+
assert res is datetime_series
374+
assert datetime_series[idx] == 0
378375

379376
# equiv
380-
s = test_data.series.copy()
377+
s = string_series.copy()
381378
res = s._set_value("foobar", 0)
382379
assert res is s
383380
assert res.index[-1] == "foobar"
384381
assert res["foobar"] == 0
385382

386-
s = test_data.series.copy()
383+
s = string_series.copy()
387384
s.loc["foobar"] = 0
388385
assert s.index[-1] == "foobar"
389386
assert s["foobar"] == 0
390387

391388

392-
def test_setslice(test_data):
393-
sl = test_data.ts[5:20]
389+
def test_setslice(datetime_series):
390+
sl = datetime_series[5:20]
394391
assert len(sl) == len(sl.index)
395392
assert sl.index.is_unique is True
396393

397394

398395
# FutureWarning from NumPy about [slice(None, 5).
399396
@pytest.mark.filterwarnings("ignore:Using a non-tuple:FutureWarning")
400-
def test_basic_getitem_setitem_corner(test_data):
397+
def test_basic_getitem_setitem_corner(datetime_series):
401398
# invalid tuples, e.g. td.ts[:, None] vs. td.ts[:, 2]
402399
msg = "Can only tuple-index with a MultiIndex"
403400
with pytest.raises(ValueError, match=msg):
404-
test_data.ts[:, 2]
401+
datetime_series[:, 2]
405402
with pytest.raises(ValueError, match=msg):
406-
test_data.ts[:, 2] = 2
403+
datetime_series[:, 2] = 2
407404

408405
# weird lists. [slice(0, 5)] will work but not two slices
409-
result = test_data.ts[[slice(None, 5)]]
410-
expected = test_data.ts[:5]
406+
result = datetime_series[[slice(None, 5)]]
407+
expected = datetime_series[:5]
411408
assert_series_equal(result, expected)
412409

413410
# OK
414411
msg = r"unhashable type(: 'slice')?"
415412
with pytest.raises(TypeError, match=msg):
416-
test_data.ts[[5, slice(None, None)]]
413+
datetime_series[[5, slice(None, None)]]
417414
with pytest.raises(TypeError, match=msg):
418-
test_data.ts[[5, slice(None, None)]] = 2
415+
datetime_series[[5, slice(None, None)]] = 2
419416

420417

421418
@pytest.mark.parametrize("tz", ["US/Eastern", "UTC", "Asia/Tokyo"])
@@ -556,39 +553,39 @@ def test_categorical_assigning_ops():
556553
tm.assert_series_equal(s, exp)
557554

558555

559-
def test_slice(test_data):
560-
numSlice = test_data.series[10:20]
561-
numSliceEnd = test_data.series[-10:]
562-
objSlice = test_data.objSeries[10:20]
556+
def test_slice(string_series, object_series):
557+
numSlice = string_series[10:20]
558+
numSliceEnd = string_series[-10:]
559+
objSlice = object_series[10:20]
563560

564-
assert test_data.series.index[9] not in numSlice.index
565-
assert test_data.objSeries.index[9] not in objSlice.index
561+
assert string_series.index[9] not in numSlice.index
562+
assert object_series.index[9] not in objSlice.index
566563

567564
assert len(numSlice) == len(numSlice.index)
568-
assert test_data.series[numSlice.index[0]] == numSlice[numSlice.index[0]]
565+
assert string_series[numSlice.index[0]] == numSlice[numSlice.index[0]]
569566

570-
assert numSlice.index[1] == test_data.series.index[11]
571-
assert tm.equalContents(numSliceEnd, np.array(test_data.series)[-10:])
567+
assert numSlice.index[1] == string_series.index[11]
568+
assert tm.equalContents(numSliceEnd, np.array(string_series)[-10:])
572569

573570
# Test return view.
574-
sl = test_data.series[10:20]
571+
sl = string_series[10:20]
575572
sl[:] = 0
576573

577-
assert (test_data.series[10:20] == 0).all()
574+
assert (string_series[10:20] == 0).all()
578575

579576

580577
def test_slice_can_reorder_not_uniquely_indexed():
581578
s = Series(1, index=["a", "a", "b", "b", "c"])
582579
s[::-1] # it works!
583580

584581

585-
def test_loc_setitem(test_data):
586-
inds = test_data.series.index[[3, 4, 7]]
582+
def test_loc_setitem(string_series):
583+
inds = string_series.index[[3, 4, 7]]
587584

588-
result = test_data.series.copy()
585+
result = string_series.copy()
589586
result.loc[inds] = 5
590587

591-
expected = test_data.series.copy()
588+
expected = string_series.copy()
592589
expected[[3, 4, 7]] = 5
593590
assert_series_equal(result, expected)
594591

@@ -597,16 +594,16 @@ def test_loc_setitem(test_data):
597594
assert_series_equal(result, expected)
598595

599596
# set slice with indices
600-
d1, d2 = test_data.series.index[[5, 15]]
597+
d1, d2 = string_series.index[[5, 15]]
601598
result.loc[d1:d2] = 6
602599
expected[5:16] = 6 # because it's inclusive
603600
assert_series_equal(result, expected)
604601

605602
# set index value
606-
test_data.series.loc[d1] = 4
607-
test_data.series.loc[d2] = 6
608-
assert test_data.series[d1] == 4
609-
assert test_data.series[d2] == 6
603+
string_series.loc[d1] = 4
604+
string_series.loc[d2] = 6
605+
assert string_series[d1] == 4
606+
assert string_series[d2] == 6
610607

611608

612609
def test_setitem_na():
@@ -776,10 +773,10 @@ def test_underlying_data_conversion():
776773
tm.assert_frame_equal(df, expected)
777774

778775

779-
def test_preserve_refs(test_data):
780-
seq = test_data.ts[[5, 10, 15]]
776+
def test_preserve_refs(datetime_series):
777+
seq = datetime_series[[5, 10, 15]]
781778
seq[1] = np.NaN
782-
assert not np.isnan(test_data.ts[10])
779+
assert not np.isnan(datetime_series[10])
783780

784781

785782
def test_cast_on_putmask():
@@ -902,11 +899,11 @@ def test_take_categorical():
902899
assert_series_equal(result, expected)
903900

904901

905-
def test_head_tail(test_data):
906-
assert_series_equal(test_data.series.head(), test_data.series[:5])
907-
assert_series_equal(test_data.series.head(0), test_data.series[0:0])
908-
assert_series_equal(test_data.series.tail(), test_data.series[-5:])
909-
assert_series_equal(test_data.series.tail(0), test_data.series[0:0])
902+
def test_head_tail(string_series):
903+
assert_series_equal(string_series.head(), string_series[:5])
904+
assert_series_equal(string_series.head(0), string_series[0:0])
905+
assert_series_equal(string_series.tail(), string_series[-5:])
906+
assert_series_equal(string_series.tail(0), string_series[0:0])
910907

911908

912909
def test_uint_drop(any_int_dtype):

0 commit comments

Comments
 (0)