Skip to content

Commit b8ed3e9

Browse files
committed
add more types into the test_merge_on_int_array
1 parent 102335a commit b8ed3e9

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

pandas/core/reshape/merge.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -1616,8 +1616,8 @@ def _factorize_keys(lk, rk, sort=True):
16161616
is_extension_array_dtype(rk) and
16171617
lk.dtype == rk.dtype):
16181618
klass = libhashtable.Factorizer
1619-
lk = ensure_object(lk)
1620-
rk = ensure_object(rk)
1619+
lk, _ = lk._values_for_factorize()
1620+
rk, _ = rk._values_for_factorize()
16211621
elif is_integer_dtype(lk) and is_integer_dtype(rk):
16221622
# GH#23917 TODO: needs tests for case where lk is integer-dtype
16231623
# and rk is datetime-dtype
@@ -1627,8 +1627,9 @@ def _factorize_keys(lk, rk, sort=True):
16271627
elif (issubclass(lk.dtype.type, (np.timedelta64, np.datetime64)) and
16281628
issubclass(rk.dtype.type, (np.timedelta64, np.datetime64))):
16291629
# GH#23917 TODO: Needs tests for non-matching dtypes
1630-
lk, _ = lk._values_for_factorize()
1631-
rk, _ = rk._values_for_factorize()
1630+
klass = libhashtable.Int64Factorizer
1631+
lk = ensure_int64(com.values_from_object(lk))
1632+
rk = ensure_int64(com.values_from_object(rk))
16321633
else:
16331634
klass = libhashtable.Factorizer
16341635
lk = ensure_object(lk)

pandas/tests/extension/base/reshaping.py

+2-1
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)