From f4372a226a28813139b80df109fbd2218ccc9d13 Mon Sep 17 00:00:00 2001 From: jschendel Date: Fri, 2 Nov 2018 16:56:16 -0600 Subject: [PATCH 1/3] TST: Fix dtype mismatch on 32bit in IntervalTree get_indexer test --- pandas/tests/indexes/interval/test_interval_tree.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/tests/indexes/interval/test_interval_tree.py b/pandas/tests/indexes/interval/test_interval_tree.py index c880133f4fc6b..5c3eb4ea1e3f3 100644 --- a/pandas/tests/indexes/interval/test_interval_tree.py +++ b/pandas/tests/indexes/interval/test_interval_tree.py @@ -103,8 +103,8 @@ def test_get_loc_closed(self, closed): skipif_32bit(1), skipif_32bit(10), skipif_32bit(100), 10000]) def test_get_indexer_closed(self, closed, leaf_size): x = np.arange(1000, dtype='float64') - found = x.astype('intp') - not_found = (-1 * np.ones(1000)).astype('intp') + found = x.astype('int64') + not_found = (-1 * np.ones(1000)).astype('int64') tree = IntervalTree(x, x + 0.5, closed=closed, leaf_size=leaf_size) tm.assert_numpy_array_equal(found, tree.get_indexer(x + 0.25)) From 8f460a433a0fae7976b344567ef0a6e4695d803c Mon Sep 17 00:00:00 2001 From: jschendel Date: Wed, 7 Nov 2018 16:46:23 -0700 Subject: [PATCH 2/3] intp casting in ivtree --- pandas/_libs/intervaltree.pxi.in | 6 +- .../indexes/interval/test_interval_tree.py | 67 ++++++++++++------- 2 files changed, 47 insertions(+), 26 deletions(-) diff --git a/pandas/_libs/intervaltree.pxi.in b/pandas/_libs/intervaltree.pxi.in index 875848c00311f..a1d42ec3acae4 100644 --- a/pandas/_libs/intervaltree.pxi.in +++ b/pandas/_libs/intervaltree.pxi.in @@ -105,7 +105,7 @@ cdef class IntervalTree(IntervalMixin): self.root.query(result, key) if not result.data.n: raise KeyError(key) - return result.to_array() + return result.to_array().astype('intp') def _get_partial_overlap(self, key_left, key_right, side): """Return all positions corresponding to intervals with the given side @@ -155,7 +155,7 @@ cdef class IntervalTree(IntervalMixin): raise KeyError( 'indexer does not intersect a unique set of intervals') old_len = result.data.n - return result.to_array() + return result.to_array().astype('intp') def get_indexer_non_unique(self, scalar_t[:] target): """Return the positions corresponding to intervals that overlap with @@ -175,7 +175,7 @@ cdef class IntervalTree(IntervalMixin): result.append(-1) missing.append(i) old_len = result.data.n - return result.to_array(), missing.to_array() + return result.to_array().astype('intp'), missing.to_array().astype('intp') def __repr__(self): return (' Date: Thu, 8 Nov 2018 05:59:28 -0600 Subject: [PATCH 3/3] lint --- pandas/_libs/intervaltree.pxi.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandas/_libs/intervaltree.pxi.in b/pandas/_libs/intervaltree.pxi.in index a1d42ec3acae4..f9427fbbcd900 100644 --- a/pandas/_libs/intervaltree.pxi.in +++ b/pandas/_libs/intervaltree.pxi.in @@ -175,7 +175,8 @@ cdef class IntervalTree(IntervalMixin): result.append(-1) missing.append(i) old_len = result.data.n - return result.to_array().astype('intp'), missing.to_array().astype('intp') + return (result.to_array().astype('intp'), + missing.to_array().astype('intp')) def __repr__(self): return ('