Skip to content

Commit 373582e

Browse files
committed
add more types into the test_merge_on_int_array
1 parent 6a9e360 commit 373582e

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

pandas/core/reshape/merge.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1618,8 +1618,8 @@ def _factorize_keys(lk, rk, sort=True):
16181618
is_extension_array_dtype(rk) and
16191619
lk.dtype == rk.dtype):
16201620
klass = libhashtable.Factorizer
1621-
lk = ensure_object(lk)
1622-
rk = ensure_object(rk)
1621+
lk, _ = lk._values_for_factorize()
1622+
rk, _ = rk._values_for_factorize()
16231623
elif is_integer_dtype(lk) and is_integer_dtype(rk):
16241624
# GH#23917 TODO: needs tests for case where lk is integer-dtype
16251625
# and rk is datetime-dtype
@@ -1629,8 +1629,9 @@ def _factorize_keys(lk, rk, sort=True):
16291629
elif (issubclass(lk.dtype.type, (np.timedelta64, np.datetime64)) and
16301630
issubclass(rk.dtype.type, (np.timedelta64, np.datetime64))):
16311631
# GH#23917 TODO: Needs tests for non-matching dtypes
1632-
lk, _ = lk._values_for_factorize()
1633-
rk, _ = rk._values_for_factorize()
1632+
klass = libhashtable.Int64Factorizer
1633+
lk = ensure_int64(com.values_from_object(lk))
1634+
rk = ensure_int64(com.values_from_object(rk))
16341635
else:
16351636
klass = libhashtable.Factorizer
16361637
lk = ensure_object(lk)

pandas/tests/extension/base/reshaping.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ def test_merge(self, data, na_value):
173173
dtype=data.dtype)})
174174
self.assert_frame_equal(res, exp[['ext', 'int1', 'key', 'int2']])
175175

176-
@pytest.mark.parametrize("dtypes", ["Int64"])
176+
@pytest.mark.parametrize("dtypes", ["Int8", "Int16", "Int32", "Int64",
177+
"UInt8", "UInt16", "UInt32", "UInt64"])
177178
def test_merge_on_int_array(self, data, dtypes):
178179
# GH 23020
179180
df1 = pd.DataFrame({'ext': data[:3],

0 commit comments

Comments
 (0)