@@ -865,47 +865,43 @@ def test_from_tuples_different_lengths_gh60695():
865865
866866 GH#60695
867867 """
868- # Test case 1: Original issue example
868+ # Test case 1: Original issue example with string values
869869 tuples = [("l1" ,), ("l1" , "l2" )]
870870 result = pd .MultiIndex .from_tuples (tuples )
871871 expected = pd .MultiIndex .from_tuples ([("l1" , np .nan ), ("l1" , "l2" )])
872- tm .assert_index_equal (result , expected )
872+ tm .assert_index_equal (result , expected , exact = True )
873873
874874 # Test case 2: Series construction with tuple keys
875875 s = pd .Series ({("l1" ,): "v1" , ("l1" , "l2" ): "v2" })
876876 expected = pd .Series (
877877 ["v1" , "v2" ],
878878 index = pd .MultiIndex .from_tuples ([("l1" , np .nan ), ("l1" , "l2" )])
879879 )
880- tm .assert_series_equal (s , expected )
880+ tm .assert_series_equal (s , expected , check_index_type = True )
881881
882- # Test case 3: Multiple levels with None
883- data = {(1 , 1 , None ): - 1.0 }
884- result = pd .Series (data )
885- expected = pd .Series (
886- - 1.0 ,
887- index = pd .MultiIndex .from_tuples ([(1 , 1 , np .nan )]),
888- )
889- tm .assert_series_equal (result , expected )
882+ # Test case 3: Handle numeric values
883+ tuples = [(1 ,), (1 , 2 )]
884+ result = pd .MultiIndex .from_tuples (tuples )
885+ expected = pd .MultiIndex .from_tuples ([(1 , np .nan ), (1 , 2 )])
886+ tm .assert_index_equal (result , expected , exact = True )
890887
891- # Test case 4: Mixed length tuples
892- tuples = [("a" , ), ("b" , "c" ), ("d" , "e " , "f " )]
888+ # Test case 4: Mixed types (strings and integers)
889+ tuples = [(1 , "a" ), (1 , ), (2 , "b " , "c " )]
893890 result = pd .MultiIndex .from_tuples (tuples )
894891 expected = pd .MultiIndex .from_tuples ([
895- ("a" , np . nan , np .nan ),
896- ("b" , "c" , np .nan ),
897- ("d" , "e " , "f " )
892+ (1 , "a" , np .nan ),
893+ (1 , np . nan , np .nan ),
894+ (2 , "b " , "c " )
898895 ])
899- tm .assert_index_equal (result , expected )
896+ tm .assert_index_equal (result , expected , exact = True )
900897
901- # Test case 5: DataFrame with tuple index
902- df = pd .DataFrame (
903- {"col" : ["v1" , "v2" ]},
904- index = pd .MultiIndex .from_tuples ([("l1" ,), ("l1" , "l2" )])
905- )
906- expected_index = pd .MultiIndex .from_tuples ([("l1" , np .nan ), ("l1" , "l2" )])
907- expected_df = pd .DataFrame (
908- {"col" : ["v1" , "v2" ]},
909- index = expected_index
910- )
911- tm .assert_frame_equal (df , expected_df )
898+ # Test case 5: Empty tuples
899+ tuples = []
900+ with pytest .raises (TypeError , match = "Cannot infer number of levels" ):
901+ pd .MultiIndex .from_tuples (tuples )
902+
903+ # Test case 6: Single level consistency
904+ tuples = [("a" ,)]
905+ result = pd .MultiIndex .from_tuples (tuples )
906+ expected = pd .MultiIndex .from_tuples ([("a" ,)])
907+ tm .assert_index_equal (result , expected , exact = True )
0 commit comments