Skip to content

Commit 8ec4b44

Browse files
gfyoungvictor
authored and
victor
committed
TST: Parameterize even more tests (pandas-dev#22061)
1 parent 2644e44 commit 8ec4b44

File tree

8 files changed

+386
-355
lines changed

8 files changed

+386
-355
lines changed

pandas/tests/arrays/categorical/test_constructors.py

+34-30
Original file line numberDiff line numberDiff line change
@@ -256,36 +256,40 @@ def test_constructor_with_generator(self):
256256
cat = Categorical([0, 1, 2], categories=xrange(3))
257257
tm.assert_categorical_equal(cat, exp)
258258

259-
def test_constructor_with_datetimelike(self):
260-
261-
# 12077
262-
# constructor wwth a datetimelike and NaT
263-
264-
for dtl in [date_range('1995-01-01 00:00:00', periods=5, freq='s'),
265-
date_range('1995-01-01 00:00:00', periods=5,
266-
freq='s', tz='US/Eastern'),
267-
timedelta_range('1 day', periods=5, freq='s')]:
268-
269-
s = Series(dtl)
270-
c = Categorical(s)
271-
expected = type(dtl)(s)
272-
expected.freq = None
273-
tm.assert_index_equal(c.categories, expected)
274-
tm.assert_numpy_array_equal(c.codes, np.arange(5, dtype='int8'))
275-
276-
# with NaT
277-
s2 = s.copy()
278-
s2.iloc[-1] = NaT
279-
c = Categorical(s2)
280-
expected = type(dtl)(s2.dropna())
281-
expected.freq = None
282-
tm.assert_index_equal(c.categories, expected)
283-
284-
exp = np.array([0, 1, 2, 3, -1], dtype=np.int8)
285-
tm.assert_numpy_array_equal(c.codes, exp)
286-
287-
result = repr(c)
288-
assert 'NaT' in result
259+
@pytest.mark.parametrize("dtl", [
260+
date_range("1995-01-01 00:00:00", periods=5, freq="s"),
261+
date_range("1995-01-01 00:00:00", periods=5,
262+
freq="s", tz="US/Eastern"),
263+
timedelta_range("1 day", periods=5, freq="s")
264+
])
265+
def test_constructor_with_datetimelike(self, dtl):
266+
# see gh-12077
267+
# constructor with a datetimelike and NaT
268+
269+
s = Series(dtl)
270+
c = Categorical(s)
271+
272+
expected = type(dtl)(s)
273+
expected.freq = None
274+
275+
tm.assert_index_equal(c.categories, expected)
276+
tm.assert_numpy_array_equal(c.codes, np.arange(5, dtype="int8"))
277+
278+
# with NaT
279+
s2 = s.copy()
280+
s2.iloc[-1] = NaT
281+
c = Categorical(s2)
282+
283+
expected = type(dtl)(s2.dropna())
284+
expected.freq = None
285+
286+
tm.assert_index_equal(c.categories, expected)
287+
288+
exp = np.array([0, 1, 2, 3, -1], dtype=np.int8)
289+
tm.assert_numpy_array_equal(c.codes, exp)
290+
291+
result = repr(c)
292+
assert "NaT" in result
289293

290294
def test_constructor_from_index_series_datetimetz(self):
291295
idx = date_range('2015-01-01 10:00', freq='D', periods=3,

pandas/tests/dtypes/test_common.py

+12-19
Original file line numberDiff line numberDiff line change
@@ -82,25 +82,18 @@ def test_dtype_equal(name1, dtype1, name2, dtype2):
8282
assert not com.is_dtype_equal(dtype1, dtype2)
8383

8484

85-
def test_dtype_equal_strict():
86-
87-
# we are strict on kind equality
88-
for dtype in [np.int8, np.int16, np.int32]:
89-
assert not com.is_dtype_equal(np.int64, dtype)
90-
91-
for dtype in [np.float32]:
92-
assert not com.is_dtype_equal(np.float64, dtype)
93-
94-
# strict w.r.t. PeriodDtype
95-
assert not com.is_dtype_equal(PeriodDtype('D'), PeriodDtype('2D'))
96-
97-
# strict w.r.t. datetime64
98-
assert not com.is_dtype_equal(
99-
com.pandas_dtype('datetime64[ns, US/Eastern]'),
100-
com.pandas_dtype('datetime64[ns, CET]'))
101-
102-
# see gh-15941: no exception should be raised
103-
assert not com.is_dtype_equal(None, None)
85+
@pytest.mark.parametrize("dtype1,dtype2", [
86+
(np.int8, np.int64),
87+
(np.int16, np.int64),
88+
(np.int32, np.int64),
89+
(np.float32, np.float64),
90+
(PeriodDtype("D"), PeriodDtype("2D")), # PeriodType
91+
(com.pandas_dtype("datetime64[ns, US/Eastern]"),
92+
com.pandas_dtype("datetime64[ns, CET]")), # Datetime
93+
(None, None) # gh-15941: no exception should be raised.
94+
])
95+
def test_dtype_equal_strict(dtype1, dtype2):
96+
assert not com.is_dtype_equal(dtype1, dtype2)
10497

10598

10699
def get_is_dtype_funcs():

0 commit comments

Comments
 (0)