Skip to content

Commit 6a5df71

Browse files
committed
TST: Add tests for Series.unique(dropna) (#61209)
1 parent 9fe657a commit 6a5df71

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

Diff for: pandas/tests/series/test_arithmetic.py

+38
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)