|
32 | 32 |
|
33 | 33 | class TestDataFrameConstructors(TestData):
|
34 | 34 |
|
35 |
| - def test_constructor(self): |
36 |
| - df = DataFrame() |
37 |
| - assert len(df.index) == 0 |
38 |
| - |
39 |
| - df = DataFrame(data={}) |
40 |
| - assert len(df.index) == 0 |
| 35 | + @pytest.mark.parametrize('constructor', [ |
| 36 | + lambda: DataFrame(), |
| 37 | + lambda: DataFrame(None), |
| 38 | + lambda: DataFrame({}), |
| 39 | + lambda: DataFrame(()), |
| 40 | + lambda: DataFrame([]), |
| 41 | + lambda: DataFrame((x for x in [])), |
| 42 | + lambda: DataFrame(data=None), |
| 43 | + lambda: DataFrame(data={}), |
| 44 | + lambda: DataFrame(data=()), |
| 45 | + lambda: DataFrame(data=[]), |
| 46 | + lambda: DataFrame(data=(x for x in [])), |
| 47 | + # these are NOT empty DataFrames |
| 48 | + pytest.param(lambda: DataFrame([[]]), marks=pytest.mark.xfail( |
| 49 | + reason='creates a non-zero length RangeIndex')), |
| 50 | + pytest.param(lambda: DataFrame([[], []]), marks=pytest.mark.xfail( |
| 51 | + reason='creates a non-zero length RangeIndex')), |
| 52 | + pytest.param(lambda: DataFrame([(x for x in [])]), |
| 53 | + marks=pytest.mark.xfail( |
| 54 | + reason='creates a non-zero length RangeIndex')) |
| 55 | + ]) |
| 56 | + def test_empty_constructor(self, constructor): |
| 57 | + expected = DataFrame() |
| 58 | + result = constructor() |
| 59 | + assert len(result.index) == 0 |
| 60 | + assert len(result.columns) == 0 |
| 61 | + tm.assert_frame_equal(result, expected) |
41 | 62 |
|
42 | 63 | def test_constructor_mixed(self):
|
43 | 64 | index, data = tm.getMixedTypeDict()
|
@@ -95,7 +116,7 @@ def test_constructor_dtype_list_data(self):
|
95 | 116 |
|
96 | 117 | def test_constructor_list_frames(self):
|
97 | 118 | # see gh-3243
|
98 |
| - result = DataFrame([DataFrame([])]) |
| 119 | + result = DataFrame([DataFrame()]) |
99 | 120 | assert result.shape == (1, 0)
|
100 | 121 |
|
101 | 122 | result = DataFrame([DataFrame(dict(A=lrange(5)))])
|
@@ -265,7 +286,7 @@ def test_constructor_dict(self):
|
265 | 286 | frame = DataFrame({}, index=idx)
|
266 | 287 | assert frame.index is idx
|
267 | 288 |
|
268 |
| - # empty with index and columns |
| 289 | + # empty dict with index and columns |
269 | 290 | idx = Index([0, 1, 2])
|
270 | 291 | frame = DataFrame({}, index=idx, columns=idx)
|
271 | 292 | assert frame.index is idx
|
@@ -1122,7 +1143,7 @@ def test_constructor_list_of_series(self):
|
1122 | 1143 | result2 = DataFrame(data, index=np.arange(6))
|
1123 | 1144 | tm.assert_frame_equal(result, result2)
|
1124 | 1145 |
|
1125 |
| - result = DataFrame([Series({})]) |
| 1146 | + result = DataFrame([Series()]) |
1126 | 1147 | expected = DataFrame(index=[0])
|
1127 | 1148 | tm.assert_frame_equal(result, expected)
|
1128 | 1149 |
|
|
0 commit comments