|
| 1 | +from datetime import datetime |
1 | 2 | import random
|
2 | 3 |
|
3 | 4 | import numpy as np
|
|
18 | 19 |
|
19 | 20 | NCOLS, NROWS = 100, 200
|
20 | 21 |
|
21 |
| -int_data = { |
22 |
| - f"col{int((i - NCOLS / 2) % NCOLS + 1)}": [ |
23 |
| - random.randint(0, 100) for _ in range(NROWS) |
24 |
| - ] |
25 |
| - for i in range(NCOLS) |
26 |
| -} |
27 | 22 |
|
28 |
| -bool_data = { |
29 |
| - f"col{int((i - NCOLS / 2) % NCOLS + 1)}": [ |
30 |
| - random.choice([True, False]) for _ in range(NROWS) |
31 |
| - ] |
32 |
| - for i in range(NCOLS) |
33 |
| -} |
| 23 | +def _make_data(make_one): |
| 24 | + return { |
| 25 | + f"col{int((i - NCOLS / 2) % NCOLS + 1)}": [make_one() for _ in range(NROWS)] |
| 26 | + for i in range(NCOLS) |
| 27 | + } |
34 | 28 |
|
35 |
| -float_data = { |
36 |
| - f"col{int((i - NCOLS / 2) % NCOLS + 1)}": [random.random() for _ in range(NROWS)] |
37 |
| - for i in range(NCOLS) |
38 |
| -} |
| 29 | + |
| 30 | +int_data = _make_data(lambda: random.randint(0, 100)) |
| 31 | +bool_data = _make_data(lambda: random.choice([True, False])) |
| 32 | +float_data = _make_data(lambda: random.random()) |
| 33 | +datetime_data = _make_data( |
| 34 | + lambda: datetime( |
| 35 | + year=random.randint(1900, 2100), |
| 36 | + month=random.randint(1, 12), |
| 37 | + day=random.randint(1, 20), |
| 38 | + ) |
| 39 | +) |
39 | 40 |
|
40 | 41 | string_data = {
|
41 | 42 | "separator data": [
|
@@ -66,7 +67,7 @@ def test_categorical_dtype(data):
|
66 | 67 | tm.assert_frame_equal(df, from_dataframe(df.__dataframe__()))
|
67 | 68 |
|
68 | 69 |
|
69 |
| -@pytest.mark.parametrize("data", [int_data, float_data, bool_data]) |
| 70 | +@pytest.mark.parametrize("data", [int_data, float_data, bool_data, datetime_data]) |
70 | 71 | def test_dataframe(data):
|
71 | 72 | df = pd.DataFrame(data)
|
72 | 73 |
|
|
0 commit comments