@@ -672,10 +672,16 @@ def test_from_arrays(self):
672
672
for lev , lab in zip (self .index .levels , self .index .labels ):
673
673
arrays .append (np .asarray (lev ).take (lab ))
674
674
675
+ # list of arrays as input
675
676
result = MultiIndex .from_arrays (arrays )
676
677
assert list (result ) == list (self .index )
677
- result2 = MultiIndex .from_arrays (iter (arrays )) # iterator as input
678
+ # iterator as input
679
+ result2 = MultiIndex .from_arrays (iter (arrays ))
678
680
assert list (result2 ) == list (self .index )
681
+ # invlide iterator input
682
+ with tm .assert_raises_regex (
683
+ TypeError , "Inappropriate input for list of arrays." ):
684
+ MultiIndex .from_arrays (0 )
679
685
680
686
# infer correctly
681
687
result = MultiIndex .from_arrays ([[pd .NaT , Timestamp ('20130101' )],
@@ -833,6 +839,10 @@ def test_from_product(self):
833
839
result2 = MultiIndex .from_product (iter ([first , second ]), names = names )
834
840
assert result2 .equals (expected )
835
841
assert result2 .names == names
842
+ # Invalid non-iterable input
843
+ with tm .assert_raises_regex (TypeError ,
844
+ "Inappropriate input for iterables." ):
845
+ MultiIndex .from_product (0 )
836
846
837
847
def test_from_product_empty (self ):
838
848
# 0 levels
@@ -1735,12 +1745,18 @@ def test_from_tuples(self):
1735
1745
expected = MultiIndex (levels = [[1 , 3 ], [2 , 4 ]],
1736
1746
labels = [[0 , 1 ], [0 , 1 ]],
1737
1747
names = ['a' , 'b' ])
1748
+ # input tuples
1738
1749
res1 = MultiIndex .from_tuples (((1 , 2 ), (3 , 4 )), names = ['a' , 'b' ])
1739
1750
assert expected .names == res1 .names
1740
1751
assert res1 .equals (expected )
1752
+ # input iterator for tuples
1741
1753
res2 = MultiIndex .from_tuples (zip ([1 , 3 ], [2 , 4 ]), names = ['a' , 'b' ])
1742
1754
assert expected .names == res2 .names
1743
1755
assert res2 .equals (expected )
1756
+ # input non-iterables
1757
+ with tm .assert_raises_regex (TypeError ,
1758
+ 'Inappropriate input for tuples.' ):
1759
+ MultiIndex .from_tuples (0 )
1744
1760
1745
1761
def test_from_tuples_empty (self ):
1746
1762
# GH 16777
0 commit comments