Skip to content

Commit a753e92

Browse files
jbrockmendelroberthdevries
authored andcommitted
Collect Series.append tests (pandas-dev#32254)
1 parent d0ba1db commit a753e92

File tree

2 files changed

+86
-91
lines changed

2 files changed

+86
-91
lines changed

pandas/tests/series/methods/test_append.py

+85-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pytest
33

44
import pandas as pd
5-
from pandas import DataFrame, DatetimeIndex, Series, date_range
5+
from pandas import DataFrame, DatetimeIndex, Index, Series, Timestamp, date_range
66
import pandas._testing as tm
77

88

@@ -166,3 +166,87 @@ def test_append_tz_dateutil(self):
166166

167167
appended = rng.append(rng2)
168168
tm.assert_index_equal(appended, rng3)
169+
170+
def test_series_append_aware(self):
171+
rng1 = date_range("1/1/2011 01:00", periods=1, freq="H", tz="US/Eastern")
172+
rng2 = date_range("1/1/2011 02:00", periods=1, freq="H", tz="US/Eastern")
173+
ser1 = Series([1], index=rng1)
174+
ser2 = Series([2], index=rng2)
175+
ts_result = ser1.append(ser2)
176+
177+
exp_index = DatetimeIndex(
178+
["2011-01-01 01:00", "2011-01-01 02:00"], tz="US/Eastern"
179+
)
180+
exp = Series([1, 2], index=exp_index)
181+
tm.assert_series_equal(ts_result, exp)
182+
assert ts_result.index.tz == rng1.tz
183+
184+
rng1 = date_range("1/1/2011 01:00", periods=1, freq="H", tz="UTC")
185+
rng2 = date_range("1/1/2011 02:00", periods=1, freq="H", tz="UTC")
186+
ser1 = Series([1], index=rng1)
187+
ser2 = Series([2], index=rng2)
188+
ts_result = ser1.append(ser2)
189+
190+
exp_index = DatetimeIndex(["2011-01-01 01:00", "2011-01-01 02:00"], tz="UTC")
191+
exp = Series([1, 2], index=exp_index)
192+
tm.assert_series_equal(ts_result, exp)
193+
utc = rng1.tz
194+
assert utc == ts_result.index.tz
195+
196+
# GH#7795
197+
# different tz coerces to object dtype, not UTC
198+
rng1 = date_range("1/1/2011 01:00", periods=1, freq="H", tz="US/Eastern")
199+
rng2 = date_range("1/1/2011 02:00", periods=1, freq="H", tz="US/Central")
200+
ser1 = Series([1], index=rng1)
201+
ser2 = Series([2], index=rng2)
202+
ts_result = ser1.append(ser2)
203+
exp_index = Index(
204+
[
205+
Timestamp("1/1/2011 01:00", tz="US/Eastern"),
206+
Timestamp("1/1/2011 02:00", tz="US/Central"),
207+
]
208+
)
209+
exp = Series([1, 2], index=exp_index)
210+
tm.assert_series_equal(ts_result, exp)
211+
212+
def test_series_append_aware_naive(self):
213+
rng1 = date_range("1/1/2011 01:00", periods=1, freq="H")
214+
rng2 = date_range("1/1/2011 02:00", periods=1, freq="H", tz="US/Eastern")
215+
ser1 = Series(np.random.randn(len(rng1)), index=rng1)
216+
ser2 = Series(np.random.randn(len(rng2)), index=rng2)
217+
ts_result = ser1.append(ser2)
218+
219+
expected = ser1.index.astype(object).append(ser2.index.astype(object))
220+
assert ts_result.index.equals(expected)
221+
222+
# mixed
223+
rng1 = date_range("1/1/2011 01:00", periods=1, freq="H")
224+
rng2 = range(100)
225+
ser1 = Series(np.random.randn(len(rng1)), index=rng1)
226+
ser2 = Series(np.random.randn(len(rng2)), index=rng2)
227+
ts_result = ser1.append(ser2)
228+
229+
expected = ser1.index.astype(object).append(ser2.index)
230+
assert ts_result.index.equals(expected)
231+
232+
def test_series_append_dst(self):
233+
rng1 = date_range("1/1/2016 01:00", periods=3, freq="H", tz="US/Eastern")
234+
rng2 = date_range("8/1/2016 01:00", periods=3, freq="H", tz="US/Eastern")
235+
ser1 = Series([1, 2, 3], index=rng1)
236+
ser2 = Series([10, 11, 12], index=rng2)
237+
ts_result = ser1.append(ser2)
238+
239+
exp_index = DatetimeIndex(
240+
[
241+
"2016-01-01 01:00",
242+
"2016-01-01 02:00",
243+
"2016-01-01 03:00",
244+
"2016-08-01 01:00",
245+
"2016-08-01 02:00",
246+
"2016-08-01 03:00",
247+
],
248+
tz="US/Eastern",
249+
)
250+
exp = Series([1, 2, 3, 10, 11, 12], index=exp_index)
251+
tm.assert_series_equal(ts_result, exp)
252+
assert ts_result.index.tz == rng1.tz

pandas/tests/series/test_timezones.py

+1-90
Original file line numberDiff line numberDiff line change
@@ -10,101 +10,12 @@
1010

1111
from pandas._libs.tslibs import conversion, timezones
1212

13-
from pandas import DatetimeIndex, Index, Series, Timestamp
13+
from pandas import Series, Timestamp
1414
import pandas._testing as tm
1515
from pandas.core.indexes.datetimes import date_range
1616

1717

1818
class TestSeriesTimezones:
19-
# -----------------------------------------------------------------
20-
# Series.append
21-
22-
def test_series_append_aware(self):
23-
rng1 = date_range("1/1/2011 01:00", periods=1, freq="H", tz="US/Eastern")
24-
rng2 = date_range("1/1/2011 02:00", periods=1, freq="H", tz="US/Eastern")
25-
ser1 = Series([1], index=rng1)
26-
ser2 = Series([2], index=rng2)
27-
ts_result = ser1.append(ser2)
28-
29-
exp_index = DatetimeIndex(
30-
["2011-01-01 01:00", "2011-01-01 02:00"], tz="US/Eastern"
31-
)
32-
exp = Series([1, 2], index=exp_index)
33-
tm.assert_series_equal(ts_result, exp)
34-
assert ts_result.index.tz == rng1.tz
35-
36-
rng1 = date_range("1/1/2011 01:00", periods=1, freq="H", tz="UTC")
37-
rng2 = date_range("1/1/2011 02:00", periods=1, freq="H", tz="UTC")
38-
ser1 = Series([1], index=rng1)
39-
ser2 = Series([2], index=rng2)
40-
ts_result = ser1.append(ser2)
41-
42-
exp_index = DatetimeIndex(["2011-01-01 01:00", "2011-01-01 02:00"], tz="UTC")
43-
exp = Series([1, 2], index=exp_index)
44-
tm.assert_series_equal(ts_result, exp)
45-
utc = rng1.tz
46-
assert utc == ts_result.index.tz
47-
48-
# GH#7795
49-
# different tz coerces to object dtype, not UTC
50-
rng1 = date_range("1/1/2011 01:00", periods=1, freq="H", tz="US/Eastern")
51-
rng2 = date_range("1/1/2011 02:00", periods=1, freq="H", tz="US/Central")
52-
ser1 = Series([1], index=rng1)
53-
ser2 = Series([2], index=rng2)
54-
ts_result = ser1.append(ser2)
55-
exp_index = Index(
56-
[
57-
Timestamp("1/1/2011 01:00", tz="US/Eastern"),
58-
Timestamp("1/1/2011 02:00", tz="US/Central"),
59-
]
60-
)
61-
exp = Series([1, 2], index=exp_index)
62-
tm.assert_series_equal(ts_result, exp)
63-
64-
def test_series_append_aware_naive(self):
65-
rng1 = date_range("1/1/2011 01:00", periods=1, freq="H")
66-
rng2 = date_range("1/1/2011 02:00", periods=1, freq="H", tz="US/Eastern")
67-
ser1 = Series(np.random.randn(len(rng1)), index=rng1)
68-
ser2 = Series(np.random.randn(len(rng2)), index=rng2)
69-
ts_result = ser1.append(ser2)
70-
71-
expected = ser1.index.astype(object).append(ser2.index.astype(object))
72-
assert ts_result.index.equals(expected)
73-
74-
# mixed
75-
rng1 = date_range("1/1/2011 01:00", periods=1, freq="H")
76-
rng2 = range(100)
77-
ser1 = Series(np.random.randn(len(rng1)), index=rng1)
78-
ser2 = Series(np.random.randn(len(rng2)), index=rng2)
79-
ts_result = ser1.append(ser2)
80-
81-
expected = ser1.index.astype(object).append(ser2.index)
82-
assert ts_result.index.equals(expected)
83-
84-
def test_series_append_dst(self):
85-
rng1 = date_range("1/1/2016 01:00", periods=3, freq="H", tz="US/Eastern")
86-
rng2 = date_range("8/1/2016 01:00", periods=3, freq="H", tz="US/Eastern")
87-
ser1 = Series([1, 2, 3], index=rng1)
88-
ser2 = Series([10, 11, 12], index=rng2)
89-
ts_result = ser1.append(ser2)
90-
91-
exp_index = DatetimeIndex(
92-
[
93-
"2016-01-01 01:00",
94-
"2016-01-01 02:00",
95-
"2016-01-01 03:00",
96-
"2016-08-01 01:00",
97-
"2016-08-01 02:00",
98-
"2016-08-01 03:00",
99-
],
100-
tz="US/Eastern",
101-
)
102-
exp = Series([1, 2, 3, 10, 11, 12], index=exp_index)
103-
tm.assert_series_equal(ts_result, exp)
104-
assert ts_result.index.tz == rng1.tz
105-
106-
# -----------------------------------------------------------------
107-
10819
def test_dateutil_tzoffset_support(self):
10920
values = [188.5, 328.25]
11021
tzinfo = tzoffset(None, 7200)

0 commit comments

Comments
 (0)