Skip to content

Commit 5cf9773

Browse files
mingglijreback
authored andcommitted
parameterize tests in scalar/timedelta (#20428)
1 parent 34ba548 commit 5cf9773

File tree

2 files changed

+29
-59
lines changed

2 files changed

+29
-59
lines changed

pandas/tests/scalar/timedelta/test_construction.py

+10-20
Original file line numberDiff line numberDiff line change
@@ -195,28 +195,18 @@ def test_iso_constructor_raises(fmt):
195195
Timedelta(fmt)
196196

197197

198-
def test_td_constructor_on_nanoseconds():
198+
@pytest.mark.parametrize('constructed_td, conversion', [
199+
(Timedelta(nanoseconds=100), '100ns'),
200+
(Timedelta(days=1, hours=1, minutes=1, weeks=1, seconds=1, milliseconds=1,
201+
microseconds=1, nanoseconds=1), 694861001001001),
202+
(Timedelta(microseconds=1) + Timedelta(nanoseconds=1), '1us1ns'),
203+
(Timedelta(microseconds=1) - Timedelta(nanoseconds=1), '999ns'),
204+
(Timedelta(microseconds=1) + 5 * Timedelta(nanoseconds=-2), '990ns')])
205+
def test_td_constructor_on_nanoseconds(constructed_td, conversion):
199206
# GH#9273
200-
result = Timedelta(nanoseconds=100)
201-
expected = Timedelta('100ns')
202-
assert result == expected
203-
204-
result = Timedelta(days=1, hours=1, minutes=1, weeks=1, seconds=1,
205-
milliseconds=1, microseconds=1, nanoseconds=1)
206-
expected = Timedelta(694861001001001)
207-
assert result == expected
208-
209-
result = Timedelta(microseconds=1) + Timedelta(nanoseconds=1)
210-
expected = Timedelta('1us1ns')
211-
assert result == expected
212-
213-
result = Timedelta(microseconds=1) - Timedelta(nanoseconds=1)
214-
expected = Timedelta('999ns')
215-
assert result == expected
207+
assert constructed_td == Timedelta(conversion)
216208

217-
result = Timedelta(microseconds=1) + 5 * Timedelta(nanoseconds=-2)
218-
expected = Timedelta('990ns')
219-
assert result == expected
220209

210+
def test_td_constructor_value_error():
221211
with pytest.raises(TypeError):
222212
Timedelta(nanoseconds='abc')
+19-39
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,28 @@
11
# -*- coding: utf-8 -*-
2-
from pandas import Timedelta
3-
4-
5-
def test_repr():
6-
assert (repr(Timedelta(10, unit='d')) ==
7-
"Timedelta('10 days 00:00:00')")
8-
assert (repr(Timedelta(10, unit='s')) ==
9-
"Timedelta('0 days 00:00:10')")
10-
assert (repr(Timedelta(10, unit='ms')) ==
11-
"Timedelta('0 days 00:00:00.010000')")
12-
assert (repr(Timedelta(-10, unit='ms')) ==
13-
"Timedelta('-1 days +23:59:59.990000')")
2+
import pytest
143

4+
from pandas import Timedelta
155

16-
def test_isoformat():
17-
td = Timedelta(days=6, minutes=50, seconds=3,
18-
milliseconds=10, microseconds=10, nanoseconds=12)
19-
expected = 'P6DT0H50M3.010010012S'
20-
result = td.isoformat()
21-
assert result == expected
226

23-
td = Timedelta(days=4, hours=12, minutes=30, seconds=5)
24-
result = td.isoformat()
25-
expected = 'P4DT12H30M5S'
26-
assert result == expected
7+
@pytest.mark.parametrize('td, expected_repr', [
8+
(Timedelta(10, unit='d'), "Timedelta('10 days 00:00:00')"),
9+
(Timedelta(10, unit='s'), "Timedelta('0 days 00:00:10')"),
10+
(Timedelta(10, unit='ms'), "Timedelta('0 days 00:00:00.010000')"),
11+
(Timedelta(-10, unit='ms'), "Timedelta('-1 days +23:59:59.990000')")])
12+
def test_repr(td, expected_repr):
13+
assert repr(td) == expected_repr
2714

28-
td = Timedelta(nanoseconds=123)
29-
result = td.isoformat()
30-
expected = 'P0DT0H0M0.000000123S'
31-
assert result == expected
3215

16+
@pytest.mark.parametrize('td, expected_iso', [
17+
(Timedelta(days=6, minutes=50, seconds=3, milliseconds=10, microseconds=10,
18+
nanoseconds=12), 'P6DT0H50M3.010010012S'),
19+
(Timedelta(days=4, hours=12, minutes=30, seconds=5), 'P4DT12H30M5S'),
20+
(Timedelta(nanoseconds=123), 'P0DT0H0M0.000000123S'),
3321
# trim nano
34-
td = Timedelta(microseconds=10)
35-
result = td.isoformat()
36-
expected = 'P0DT0H0M0.00001S'
37-
assert result == expected
38-
22+
(Timedelta(microseconds=10), 'P0DT0H0M0.00001S'),
3923
# trim micro
40-
td = Timedelta(milliseconds=1)
41-
result = td.isoformat()
42-
expected = 'P0DT0H0M0.001S'
43-
assert result == expected
44-
24+
(Timedelta(milliseconds=1), 'P0DT0H0M0.001S'),
4525
# don't strip every 0
46-
result = Timedelta(minutes=1).isoformat()
47-
expected = 'P0DT0H1M0S'
48-
assert result == expected
26+
(Timedelta(minutes=1), 'P0DT0H1M0S')])
27+
def test_isoformat(td, expected_iso):
28+
assert td.isoformat() == expected_iso

0 commit comments

Comments
 (0)