@@ -958,3 +958,41 @@ def test_rmod_consistent_large_series():
958958 expected = Series ([1 ] * 10001 )
959959
960960 tm .assert_series_equal (result , expected )
961+
962+
963+ from pandas ._testing import assert_numpy_array_equal , assert_extension_array_equal
964+
965+ # Test Case 1: Basic numeric unique with NA (dropna=False)
966+ def test_unique_numeric_dropna_false ():
967+ s = pd .Series ([1 , 2 , 2 , pd .NA , 3 , pd .NA ])
968+ result = s .unique (dropna = False )
969+ expected = np .array ([1 , 2 , pd .NA , 3 ], dtype = object )
970+ assert_numpy_array_equal (result , expected )
971+
972+ # Test Case 2: Empty Series
973+ def test_unique_empty_series ():
974+ s = pd .Series ([], dtype = 'float64' )
975+ result = s .unique ()
976+ expected = np .array ([], dtype = 'float64' )
977+ assert_numpy_array_equal (result , expected )
978+
979+ # Test Case 3: Categorical data
980+ def test_unique_categorical ():
981+ s = pd .Series (pd .Categorical (['a' , 'b' , 'a' , pd .NA ]))
982+ result = s .unique (dropna = False )
983+ expected = pd .Categorical (['a' , 'b' , pd .NA ])
984+ assert_extension_array_equal (result , expected )
985+
986+ # Test Case 4: NA values
987+ def test_unique_with_nas_simple ():
988+ s = pd .Series ([1 , 2 , 2 , pd .NA , 3 , pd .NA ], dtype = 'Int64' )
989+
990+ # Current behavior (returns ExtensionArray)
991+ result = s .unique ()
992+ expected = pd .array ([1 , 2 , 3 ], dtype = 'Int64' )
993+ tm .assert_extension_array_equal (result , expected )
994+
995+ # With dropna=False
996+ result_with_na = s .unique (dropna = False )
997+ expected_with_na = pd .array ([1 , 2 , pd .NA , 3 ], dtype = 'Int64' )
998+ tm .assert_extension_array_equal (result_with_na , expected_with_na )
0 commit comments