|
| 1 | +from enum import ( |
| 2 | + Enum, |
| 3 | + auto, |
| 4 | +) |
| 5 | + |
1 | 6 | import numpy as np |
2 | 7 | import pytest |
3 | 8 |
|
@@ -138,3 +143,61 @@ def test_compare_datetime64_and_string(): |
138 | 143 | tm.assert_series_equal(result_eq1, expected_eq) |
139 | 144 | tm.assert_series_equal(result_eq2, expected_eq) |
140 | 145 | tm.assert_series_equal(result_neq, expected_neq) |
| 146 | + |
| 147 | + |
| 148 | +def test_eq_objects(): |
| 149 | + # GH#62191 Test eq with Enum and List elements |
| 150 | + |
| 151 | + class Thing(Enum): |
| 152 | + FIRST = auto() |
| 153 | + SECOND = auto() |
| 154 | + |
| 155 | + left = pd.Series([Thing.FIRST, Thing.SECOND]) |
| 156 | + py_l = [Thing.FIRST, Thing.SECOND] |
| 157 | + |
| 158 | + result = left.eq(Thing.FIRST) |
| 159 | + expected = pd.Series([True, False]) |
| 160 | + tm.assert_series_equal(result, expected) |
| 161 | + |
| 162 | + result = left.eq(py_l) |
| 163 | + expected = pd.Series([True, True]) |
| 164 | + tm.assert_series_equal(result, expected) |
| 165 | + |
| 166 | + result = left.eq(np.asarray(py_l)) |
| 167 | + expected = pd.Series([True, True]) |
| 168 | + tm.assert_series_equal(result, expected) |
| 169 | + |
| 170 | + result = left.eq(pd.Series(py_l)) |
| 171 | + expected = pd.Series([True, True]) |
| 172 | + tm.assert_series_equal(result, expected) |
| 173 | + |
| 174 | + result = pd.Series([[1, 2], [3, 4]]).eq([1, 2]) |
| 175 | + expected = pd.Series([True, False]) |
| 176 | + with pytest.raises(AssertionError): |
| 177 | + tm.assert_series_equal(result, expected) |
| 178 | + expected = pd.Series([False, False]) |
| 179 | + tm.assert_series_equal(result, expected) |
| 180 | + |
| 181 | + |
| 182 | +def test_eq_with_index(): |
| 183 | + # GH#62191 Test eq with non-trivial indices |
| 184 | + left = pd.Series([1, 2], index=[1, 0]) |
| 185 | + py_l = [1, 2] |
| 186 | + |
| 187 | + # assuming Python list has the same index as the Series |
| 188 | + result = left.eq(py_l) |
| 189 | + expected = pd.Series([True, True], index=[1, 0]) |
| 190 | + tm.assert_series_equal(result, expected) |
| 191 | + |
| 192 | + # assuming np.ndarray has the same index as the Series |
| 193 | + result = left.eq(np.asarray(py_l)) |
| 194 | + expected = pd.Series([True, True], index=[1, 0]) |
| 195 | + tm.assert_series_equal(result, expected) |
| 196 | + |
| 197 | + result = left.eq(pd.Series(py_l)) |
| 198 | + expected = pd.Series([False, False]) |
| 199 | + tm.assert_series_equal(result, expected) |
| 200 | + |
| 201 | + result = left.eq(pd.Series([2, 1])) |
| 202 | + expected = pd.Series([True, True]) |
| 203 | + tm.assert_series_equal(result, expected) |
0 commit comments