Skip to content

Commit e907135

Browse files
author
Joshua Bradt
committed
Split test into two parts
1 parent 20159c1 commit e907135

File tree

1 file changed

+17
-10
lines changed

1 file changed

+17
-10
lines changed

pandas/tests/test_reshape.py

+17-10
Original file line numberDiff line numberDiff line change
@@ -70,23 +70,30 @@ def test_value_vars_types(self):
7070
value_vars=type_(('A', 'B')))
7171
tm.assert_frame_equal(result, expected)
7272

73-
def test_id_and_value_vars_types_with_multiindex(self):
73+
def test_vars_work_with_multiindex(self):
7474
expected = DataFrame({
7575
('A', 'a'): self.df1[('A', 'a')],
7676
'CAP': ['B'] * len(self.df1),
7777
'low': ['b'] * len(self.df1),
7878
'value': self.df1[('B', 'b')],
7979
}, columns=[('A', 'a'), 'CAP', 'low', 'value'])
8080

81-
for id_vars in ([('A', 'a')], ('A', 'a')):
82-
for value_vars in ([('B', 'b')], ('B', 'b')):
83-
if isinstance(id_vars, list) and isinstance(value_vars, list):
84-
result = melt(self.df1, id_vars=id_vars,
85-
value_vars=value_vars)
86-
tm.assert_frame_equal(result, expected)
87-
else:
88-
with self.assertRaisesRegex(ValueError, r'MultiIndex'):
89-
melt(self.df1, id_vars=id_vars, value_vars=value_vars)
81+
result = melt(self.df1, id_vars=[('A', 'a')], value_vars=[('B', 'b')])
82+
tm.assert_frame_equal(result, expected)
83+
84+
def test_tuple_vars_fail_with_multiindex(self):
85+
# melt should fail with an informative error message if
86+
# the columns have a MultiIndex and a tuple is passed
87+
# for id_vars or value_vars.
88+
tuple_a = ('A', 'a')
89+
list_a = [tuple_a]
90+
tuple_b = ('B', 'b')
91+
list_b = [tuple_b]
92+
93+
for id_vars, value_vars in ((tuple_a, list_b), (list_a, tuple_b),
94+
(tuple_a, tuple_b)):
95+
with self.assertRaisesRegex(ValueError, r'MultiIndex'):
96+
melt(self.df1, id_vars=id_vars, value_vars=value_vars)
9097

9198
def test_custom_var_name(self):
9299
result5 = melt(self.df, var_name=self.var_name)

0 commit comments

Comments
 (0)