@@ -672,10 +672,16 @@ def test_from_arrays(self):
672672 for lev , lab in zip (self .index .levels , self .index .labels ):
673673 arrays .append (np .asarray (lev ).take (lab ))
674674
675+ # list of arrays as input
675676 result = MultiIndex .from_arrays (arrays )
676677 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 ))
678680 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 )
679685
680686 # infer correctly
681687 result = MultiIndex .from_arrays ([[pd .NaT , Timestamp ('20130101' )],
@@ -833,6 +839,10 @@ def test_from_product(self):
833839 result2 = MultiIndex .from_product (iter ([first , second ]), names = names )
834840 assert result2 .equals (expected )
835841 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 )
836846
837847 def test_from_product_empty (self ):
838848 # 0 levels
@@ -1735,12 +1745,18 @@ def test_from_tuples(self):
17351745 expected = MultiIndex (levels = [[1 , 3 ], [2 , 4 ]],
17361746 labels = [[0 , 1 ], [0 , 1 ]],
17371747 names = ['a' , 'b' ])
1748+ # input tuples
17381749 res1 = MultiIndex .from_tuples (((1 , 2 ), (3 , 4 )), names = ['a' , 'b' ])
17391750 assert expected .names == res1 .names
17401751 assert res1 .equals (expected )
1752+ # input iterator for tuples
17411753 res2 = MultiIndex .from_tuples (zip ([1 , 3 ], [2 , 4 ]), names = ['a' , 'b' ])
17421754 assert expected .names == res2 .names
17431755 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 )
17441760
17451761 def test_from_tuples_empty (self ):
17461762 # GH 16777
0 commit comments